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