public String ulozKomentar() {
em = emf.createEntityManager();
em.getTransaction().begin();
em.refresh(clanek);
clanek.getKomentareCollection().add(newKomentar);
newKomentar.setIdclanek(clanek);
em.flush();
em.getTransaction().commit();
em.close();
newKomentar = new Komentare();
return "";
}
ten flush je zbytecny, pokud je flush mode spjaty s transakci.
> Problem ale je, ze em.merge(clanek) nejak asi nefunguje korektne protoze to
> vyhazuje vyjimku:
>
> java.lang.IllegalArgumentException: Can not refresh not managed object:
> nastenka.entity.Clanky[idclanek=2].
>
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.refresh(EntityManagerImpl.java:381)
> nastenka.NastenkaBean.ulozKomentar(NastenkaBean.java:80)
>
> Pokud ale kod prepisu tak, ze EntityManager necham porad otevreny, tak vse
> funguje jak ma. Proto si myslim, ze problem bude v tom jak pripojit Clanek
> zpet do persistentniho kontextu.
>
>
>
> [EMAIL PROTECTED] wrote on 03.06.2008 10:10:29:
>
>> > v podstate jde o to, jestli metoda ulozKomentar() pouziva spravny postup
>> > jak
>> > pridat a ulozit zaznam do kolekce List<Komentare> komentareCollection v
>> > instanci (Clanky) clanek
>>
>> bez kodu te metody tezko rici, kazdopadne to vypada podle popisu, ze
>> ten objekt Clanek je odpojeny od persistentniho kontextu. Takze zkuste
>> pred tim, nez vlozite ten komentar, zavolat
>>
>> em.refresh(clanek);
>> clanek.getKomentareCollection().add(newKomentar);
>> newKomentar.setClanek(clanek);
>> em.flush();
>>
>> to by melo fungovat
>>
>> > jj toto pouzivam, jen jsem myslel, jestli by to JPA neumelo nejak
>> "automaticky"
>>
>> neznam JPA, ale v Hibernatu se to ridi atributem inverse, ktery urcuje
>> toho kdo ridi relaci, jestli strana one a nebo strana many. Elegantni
>> reseni je to mit osetrene na urovni domenoveho modelu, aby se clovek
>> nemusel podrizovat tomu, ze ve spodu je nejaky ORM framework.
>>
>> public class Clanek {
>> public void addComment(Komentar comment) {
>> getKomentareCollection().add(comment);
>> comment.setClanek(this);
>> }
>>
>> .....
>> }
>>
>> --
>> S pozdravem Roman "Dagi" Pichlik
>>
>> /* http://www.sweb.cz/pichlik/ Blog pro kodery */
>
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */