package Ġcom . ml ree f . rest . domain Ċ Ċ import Ġjava . util . UUID Ċ import Ġjavax . persistence . Column Ċ import Ġjavax . persistence . Entity Ċ import Ġjavax . persistence . Fetch Type Ċ import Ġjavax . persistence . Id Ċ import Ġjavax . persistence . JoinColumn Ċ import Ġjavax . persistence . ManyToOne Ċ import Ġjavax . persistence . Table Ċ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" parameter _ instances ") Ċ data Ġclass ĠParameter Instance ( ĊĠĠĠ Ġ@ Id ĊĠĠĠ Ġ@ Column ( name Ġ= Ġ" id ", Ġlength Ġ= Ġ 1 6 , Ġunique Ġ= Ġtrue , Ġnullable Ġ= Ġfalse ) ĊĠĠĠ Ġval Ġid : ĠUUID , ĊĊĠĠĠ Ġ@ ManyToOne ( fetch Ġ= ĠFetch Type . LA ZY ) ĊĠĠĠ Ġ@ JoinColumn ( name Ġ= Ġ" parameter _ id ") ĊĠĠĠ Ġval Ġparameter : ĠParameter , Ġ// TODO : ĠMake Ġit Ġnullable Ġbecause Ġin Ġdatabase Ġit Ġis Ġnullable Ġ(' SET ĠNULL ' Ġoption Ġif Ġparent Ġis Ġremoved ) ĊĊĠĠĠ Ġ@ ManyToOne ( fetch Ġ= ĠFetch Type . E AGER ) ĊĠĠĠ Ġ@ JoinColumn ( name Ġ= Ġ" processor _ instance _ id ") ĊĠĠĠ Ġval Ġprocessor Instance : ĠProcessor Instance , ĊĊĠĠĠ Ġval Ġvalue : ĠString , ĊĠĠĠ Ġval Ġname : ĠString Ġ= Ġparameter . name , ĊĊĠĠĠ Ġ@ ManyToOne ( fetch Ġ= ĠFetch Type . LA ZY ) ĊĠĠĠ Ġ@ JoinColumn ( name Ġ= Ġ" type _ id ") ĊĠĠĠ Ġval Ġparameter Type : ĠParameter Type ? Ġ= Ġnull , Ġ// we Ġsave Ġduplication Ġof Ġname Ġand Ġtype Ġjust Ġin Ġcase Ġif Ġparent Ġparameter Ġis Ġdeleted Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġid . hashCode () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ=== Ġother Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Ġ== Ġnull Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Ġ! is ĠParameter Instance Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis . id Ġ== Ġother . id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Parameter Instance ( id =$ id , Ġparameter =${ parameter . id }, Ġprocessor Instance =${ processor Instance . id }, Ġvalue ='$ value ', Ġname ='$ name ')" ĊĠĠĠ Ġ} Ċ }