Hi, takze dekompozice tercialni vztahu na entity pres pomocnou entitu co ma dve vlastnosti.
trida Dum (tabulka t_house) { List<HodnotaVlastnostiDomu> vlastnostiDomu } trida TypVlastnostiDomu { nazev=Bool } { nazev=Text }, ... trida VlastnostDomu { nazev text, TypVlastnostiDomu typ } trida HodnotaVlastnostiDomu { VlastnostDomu, Dum } Dum-1:n-HodnotaVlastnostiDomu-m:1-VlastnostDomu-k:1-TypVlastnostiDomu http://www.hibernate.org/hib_docs/v3/reference/en/html/collections.html#collections-ternary nebo pomoci komponent - ty maji jeden problem - nesdili se. Takze objekt HodnotaVlastnostiDomu h1,h2 po nacteni z DB nebude platit h1.getVlastnostDomu()==h2.getVlastnostDomu() (nutno implementovat vlastni equals a vzdycky budete porovnavat nazev a typ) http://www.hibernate.org/hib_docs/v3/reference/en/html/components.html TypVlastnostiDomu je vlastne vyctovy typ. A ted je tu takovej problem s OOP - nahrava to tomu, aby trida VlastnostDomu byla abstraktni, protoze TypVlastnostiDomu je omezeny, tj. BoolVlastnostDomu extends VlastnostDomu { } - bude reprezentovany checkboxem TextVlastnostDomu bude polem to zaridi: interface VlastnostDomuPrinter { print(BoolVlastnostDomu); print(TextVlastnostDomu) ... } class HTMLPrinter implements VlastnostDomuPrinter { print(BoolVlastnostDomu) { ... } ... } aby jsme mohli udelat for(VlastnostDomu vlastnostDomu : dum.getVlastnostiDomu()) { printer.print(vlastnostDomu) } A pokud chcete pouzivat napr. JSTL - no neni to fanda OOP, takze je dobre namapovat discriminator na vlastnost (update=false, insert=false). Tak asi tak. Karel