package Ġbr . com . z up . cas ado codigo . book Ċ Ċ import Ġbr . com . z up . cas ado codigo . author . Author Ċ import Ġbr . com . z up . cas ado codigo . book . Book . Companion . FIND _ ALL Ċ import Ġbr . com . z up . cas ado codigo . category . Category Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . time . LocalDate Ċ import Ġjavax . persistence .* Ċ import Ġjavax . validation . Valid Ċ import Ġjavax . validation . constraints .* Ċ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" books ", Ġunique Constraints Ġ= Ġ[ ĊĠĠĠ ĠUnique Constraint ( column Names Ġ= Ġ[" title "], Ġname Ġ= Ġ" uk _ book _ title "), ĊĠĠĠ ĠUnique Constraint ( column Names Ġ= Ġ[" isbn "], Ġname Ġ= Ġ" uk _ book _ isbn ") Ċ ]) Ċ @ Named Queries ( Named Query ( name Ġ= ĠF IND _ ALL , Ġquery Ġ= Ġ" select Ġb Ġfrom ĠBook Ġb ")) Ċ data Ġclass ĠBook ( ĊĠĠĠĠĠĠĠ Ġ@ Id ĊĠĠĠĠĠĠĠ Ġ@ GeneratedValue ( strategy Ġ= ĠGeneration Type . IDENTITY ) ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠLong ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġ@ field : Size ( max Ġ= Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġabstract : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġval Ġsummary : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotNull ĊĠĠĠĠĠĠĠ Ġ@ field : Min ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġprice : ĠBigDecimal , ĊĊĠĠĠĠĠĠĠ Ġ@ field : Min ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġpages : ĠInt , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġval Ġis bn : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ field : Future ĊĠĠĠĠĠĠĠ Ġ@ field : NotNull ĊĠĠĠĠĠĠĠ Ġval Ġpublished At : ĠLocalDate , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotNull ĊĠĠĠĠĠĠĠ Ġ@ Valid ĊĠĠĠĠĠĠĠ Ġ@ ManyToOne ĊĠĠĠĠĠĠĠ Ġval Ġcategory : ĠCategory , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotNull ĊĠĠĠĠĠĠĠ Ġ@ Valid ĊĠĠĠĠĠĠĠ Ġ@ ManyToOne ĊĠĠĠĠĠĠĠ Ġval Ġauthor : ĠAuthor Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF IND _ ALL : ĠString Ġ= Ġ" Book . findAll " ĊĠĠĠ Ġ} Ċ } Ċ