persistence@glassfish.java.net

Re: Cannot see newly created object

From: Adam Bien <abien_at_adam-bien.com>
Date: Tue, 01 Jul 2008 17:10:58 +0200

Hi Markus,

the default is REQUIRED. A new TX will be started, except there is one
already available...

regards,

adam
Markus KARG schrieb:
> I have not changed the transactional settings, so the defaults apply
> in both, the SB and the EB.
> AFAIK the default is that a TX is automatically started and finished
> around the invocation, isn't it?
>
> Gordon Yorke schrieb:
>> Hello Markus
>> What are the transactional boundaries for the listening SB? Is
>> the em you are accessing in the listener in a transaction and reading
>> transactional data?
>> --Gordon
>>
>> Markus KARG wrote:
>>> I forgot to mention: Exactly the same code executed from within a
>>> session bean results in the new child beeing listed correctly.
>>>
>>> So what difference is between a MDB and a SB?
>>>
>>> Thanks! :-)
>>> Markus
>>>
>>> Markus Karg schrieb:
>>>> I have a strange problem and need your kind help. :-)
>>>>
>>>>
>>>> In GlassFishv2ur2, I am running a session bean that does:
>>>>
>>>> parent = em.find(ParentEntity.class, 1000).getSingleResult();
>>>> parent.getChildren();
>>>>
>>>> which lists the content of a OneToMany relationship.
>>>>
>>>> Now a message driven bean does:
>>>>
>>>> parent = em.find(ParentEntity.class, 1000).getSingleResult();
>>>> child = new ChildEntity(parent); // Implicitly sets "One"-Side
>>>> parent.getChildren().add(child); // Explicitly sets "Many"-Side
>>>> em.persist(child);
>>>>
>>>> When I go to the DBMS, I can see the row of the new child including
>>>> all fields. The child is correctly linked with the parent.
>>>>
>>>> But when running the listing again:
>>>>
>>>> parent = em.find(ParentEntity.class, 1000).getSingleResult();
>>>> parent.getChildren();
>>>>
>>>> Then still I do not see the new child. To make it appear, I must
>>>> undeploy and deploy. That is very weird, since it can be seen in
>>>> the database table, and I have set both sides of the relationship
>>>> as you can see in the code snippet.
>>>>
>>>> Looks like a cache problem, but I just do not understand how to
>>>> solve it.
>>>>
>>>> Has anybody an idea what the cause is and how to get rid of it?
>>>>
>>>> Thanks a lot! :-)
>>>> Markus
>>>>
>>>> QUIPSY QUALITY GmbH & Co. KG
>>>> Ein Unternehmen der MES-Gruppe
>>>> Stuttgarter Strasse 23
>>>> D-75179 Pforzheim
>>>> Tel: 07231-9189-52
>>>> Fax: 07231-9189-59
>>>> www.quipsy.de
>>>> karg_at_quipsy.de
>>>> Registergericht Mannheim HRA 701214
>>>> Geschäftsführer: Nils Schroeder
>>>>
>>>> Diese E-Mail enthält persönliche, vertrauliche und vor Weitergabe
>>>> geschützte Informationen und ist ausschließlich für den
>>>> vorgesehenen o.g. Empfänger (Adressaten) bestimmt. Falls Sie diese
>>>> E-Mail versehentlich erhalten haben und nicht der vorgesehene
>>>> Empfänger sind, bitten wir Sie, die E-Mail und deren Anhänge nicht
>>>> aufzubewahren, nicht zu vervielfältigen, nicht zu nutzen und nicht
>>>> weiterzugeben. Bitte informieren Sie uns als Absender über diesen
>>>> Zustellungsfehler und löschen Sie die E-Mail.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>
>


-- 
 Consultant, Author, Java Champion
 
 Homepage: www.adam-bien.com
 Weblog: blog.adam-bien.com
 eMail:  abien_at_adam-bien.com
 Mobile: 0049(0)170 280 3144
 Books: Enterprise Architekturen (ISBN: 393504299X),
        Java EE 5 Architekturen  (ISBN: 3939084247),
        J2EE Patterns, J2EE Hotspots, Enterprise Frameworks and Struts