package Ġcom . nr kt . student course graphql . model Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġorg . hibernate . Hibernate Ċ import Ġorg . hibernate . annotations . Generic Generator Ċ import Ġjavax . persistence .* Ċ import Ġjava . io . Serializable Ċ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" address ") Ċ data Ġclass ĠAddress ( ĊĠĠĠ Ġ@ Id ĊĠĠĠ Ġ@ GeneratedValue ( generator Ġ= Ġ" UUID ") ĊĠĠĠ Ġ@ Generic Generator ( name Ġ= Ġ" UUID ", Ġstrategy Ġ= Ġ" org . hibernate . id . UUID Generator ") ĊĠĠĠ Ġ@ JsonProperty (" id ") ĊĠĠĠ Ġval Ġid : ĠString ? Ġ= Ġ"", ĊĠĠĠ Ġ@ Column ( name Ġ= Ġ" address 1 ") ĊĠĠĠ Ġ@ JsonProperty (" address 1 ") ĊĠĠĠ Ġval Ġfirst Address : ĠString ? Ġ= Ġ"", ĊĠĠĠ Ġ@ Column ( name Ġ= Ġ" address 2 ") ĊĠĠĠ Ġ@ JsonProperty (" address 2 ") ĊĠĠĠ Ġval Ġsecond Address : ĠString ? Ġ= Ġ"", ĊĠĠĠ Ġ@ Column ( name Ġ= Ġ" city ") ĊĠĠĠ Ġ@ JsonProperty (" city ") ĊĠĠĠ Ġval Ġcity : ĠString ? Ġ= Ġ"", ĊĠĠĠ Ġ@ Column ( name Ġ= Ġ" state ") ĊĠĠĠ Ġ@ JsonProperty (" state ") ĊĠĠĠ Ġval Ġstate : ĠString ? Ġ= Ġ"" Ċ ): ĠSerializable { ĊĊĠĠĠ Ġconstructor ( first Address : ĠString ?, Ġsecond Address : ĠString ?, Ġcity : ĠString ?, Ġstate : ĠString ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġfirst Address Ġ= Ġfirst Address , ĊĠĠĠĠĠĠĠ Ġsecond Address Ġ= Ġsecond Address , ĊĠĠĠĠĠĠĠ Ġcity Ġ= Ġcity , ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull Ġ|| ĠHibernate . getClass ( this ) Ġ!= ĠHibernate . getClass ( other )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġother Ġas ĠAddress ĊĊĠĠĠĠĠĠĠ Ġreturn Ġid Ġ!= Ġnull Ġ&& Ġid Ġ== Ġother . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= Ġ 1 5 8 0 4 7 9 5 5 6 ĊĊĠĠĠ Ġ@ Override ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis :: class . simple Name Ġ+ Ġ"( first Address Ġ= Ġ$ first Address Ġ, Ġsecond Address Ġ= Ġ$ second Address Ġ, Ġcity Ġ= Ġ$ city Ġ, Ġstate Ġ= Ġ$ state Ġ)" ĊĠĠĠ Ġ} Ċ Ċ }