package Ġorg . ven a . example . model Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġorg . hibernate . annotations . Natural Id Ċ import Ġjavax . persistence .* Ċ import Ġjavax . validation . constraints . NotNull Ċ import Ġjavax . validation . constraints . Size Ċ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" account ") Ċ data Ġclass ĠAccount (@ Column ( name Ġ= Ġ" email ", Ġnullable Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġemail : ĠString , Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Natural Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Column ( name Ġ= Ġ" username ", Ġunique Ġ= Ġtrue , Ġnullable Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ NotNull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Size ( min Ġ= Ġ 3 , Ġmax Ġ= Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString Ġ= Ġemail , Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Size ( min Ġ= Ġ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ get : JsonIgnore ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ set : JsonProperty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpassword : ĠString ? Ġ= Ġnull , Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠfirstName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠlastName : ĠString ) Ġ{ ĊĊĠĠĠ Ġ@ Id ĊĠĠĠ Ġ@ GeneratedValue ĊĠĠĠ Ġvar Ġid : ĠLong ? Ġ= Ġnull Ċ }