Ano, mate pravdu. Dost presne jsem se nezamyslel nad vyznamem One-To-May pro
tento pripad.
Zaroven jsem podvedome nedoporucil pouziti Many-To-Many, ktere znamena tabulku
navic -> bylo by to pomalejsi a zabralo by to vice mista  ;-)


  Lukas


On Thu, 03 May 2007 11:45:02 +0200, Ondřej Fafejta wrote
> lukas napsal(a):
> > Tak to zkuste za runtime.
> > a) vlozit do listu stejny string 2x.
> >   
> Myslíte něco takového?
> 
> TestEntity te=new TestEntity();
>         te.setId(1);
>         te.setNames(new ArrayList<TestName>());
>         te.getNames().add(new TestName("ahoj"));
>         te.getNames().add(new TestName("ahoj"));
> 
> // Ano toto je chyba.
> To samozřejmě nejde, protože při cascade ALL se vytváří druhá 
> instance TestName se stejným primárním klíčem. Což je samozřejmě nesmysl.
> Navíc spojovací tabulka test_entity_name obsahuje primární klíč přes 
> obě položky (test_entity_id,.test_name_name_value) Tedy není možné 
> přidat 2-krát Entitu TestName s primárním klíčem "ahoj" k entitě 
> TestEntity s primárním klíčem 1.
> > b) udelat dve entity a dat jim do listu stejny string.
> >   
> To samozřejmě nemohu - vždyť je tam vztah OneToMany a ne ManyToMany 
> :-).
> 
> Pokud by tam bylo ManyToMany, tak by se muselo ukládání vyřešit 
> trochu jinak.
> 
> V každém případě záleží na klientovi, zda je požadováno, aby mohly
> existovat dvě entity TestName se stejným jménem.
> Pokud ano, tak by Entita TestName musela mít primární klíč např. int 
> a String value by se mohlo opakovat.
> 
> Fafi

Odpovedet emailem