-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: EntityNotFoundException
PostPosted: Mon Sep 15, 2008 9:22 am 
Newbie

Joined: Mon Sep 15, 2008 8:37 am
Posts: 9
Hallo! Ich habe eine EntityNotFoundException von der EntityManager.find()-Methode bekommen. Und zwar hab' ich folgende Tabellenstruktur:

Tabelle: Order
-id
-myClassId

Tabele: MyClasses

-id

Meine POJOs sehen so aus:

Order
{
int id;
MyClass myClass;
}

MyClass
{
int id;
}

Falls kein MyClass zu einem Order existiert, steht im Feld myClassId der Integer-Wert 0 (nicht NULL).

Beim Aufruf der find()-Methode stoesst Hibernate auf ein Order, zu dem kein MyClass definiert ist, auf den Wert 0, versucht in der Tabelle MyClasses einen Eintrag mit id = 0 zu finden, findet keinen und schmeisst einen EntityNotFoundException. Ich moechte aber, dass in solchen Faellen ein Order zurueckgegeben wird, bei dem die variable myClass den Wert null hat.

Welche Moeglichkeiten gibt es denn um das zu erreichen? Bitte listet alle kurz auf, die euch einfallen! Danke!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 16, 2008 9:04 am 
Newbie

Joined: Mon Sep 15, 2008 8:37 am
Posts: 9
Hi! Ich hab' rausgefunden, wie man das Problem loesen kann. Hibernate definiert eine Annotation @org.hibernate.NotFound. Wenn man bei der Annotation action = NotFoundAction setzt, weist Hibernate der myClass-Variablen im Order-Objekt einen Null-Pointer zu anstatt die EntityNotFoundException zu schmeissen.

Das Lustige an der ganzen Geschichte ist, dass wenn action = NotFoundAction.Exception gesetzt ist (Standardwert) unterscheidet Hibernate zwischen zwei Faellen:

1)FetchType.EAGER: Eine EntityNotFoundException wird geschmissen
2)FetchType.Lazy: myClass variable referenziert ein leeres (mit dem Defaultkonstruktor aufgebautes) MyClass-Objekt.

Hat jemand eine Ahnung, warum es so ist?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 16, 2008 9:10 am 
Newbie

Joined: Mon Sep 15, 2008 8:37 am
Posts: 9
Ich hab' noch eine andere Frage: Ich benutze java persistence api und waere gerne unabhaengig vom persistence provider. Hat jemand eine Ahnung, ob man die beschriebene Wirkung mittels JPA erreichen kann?


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.