persistence@glassfish.java.net

Cannot see newly created object

From: Markus Karg <karg_at_quipsy.de>
Date: Sat, 28 Jun 2008 10:33:21 +0200

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.