-->
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.  [ 1 post ] 
Author Message
 Post subject: INNER JOIN FETCH funktioniert nur manchmal ...
PostPosted: Tue Mar 14, 2006 9:20 am 
Newbie

Joined: Thu Feb 16, 2006 4:16 am
Posts: 17
Location: Austria
Hallo,

Ich habe da leider ein Problem mit dem JBoss Application Server 4.0.3 RC1, EJB 3.0 und Hibernate.

Ich möchte gerne alle Kinder-Knoten eines Eltern-Knoten selektieren in meiner Abfrage. Zwar erhalte ich alle Daten des Eltern-Knotens aber manchmal passiert es, dass es nicht funktioniert. Die Kinder-Daten werden mit Hilfe des INNER JOIN FETCH geladen.

Code:
FROM ParentClass parent"
INNER JOIN FETCH parent.childrens"
WHERE parent.id = :myIdParam"


In meinen Annotationen habe ich meiner Meinung nach keinen Fehler, weil ich meistens die richtigen Daten erhalte (inkl. Kinder-Daten). Obwohl ich die selbe Funktion mehrmals aufrufe kann es sein, dass es einmal erfolgreich ist und manchmal einen Fehler (Kind-Knoten = null) liefert.

Code:
java.lang.NullPointerException
   at mypackage.myJUnitTestMethod(MyClass.java:122)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at junit.framework.TestCase.runTest(TestCase.java:154)
   at junit.framework.TestCase.runBare(TestCase.java:127)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)


Der Quelltext von MyClass sieht folgendermaßen aus:

Code:
Collection<Person> coll = personService.getPerson(123);

Iterator it = coll.iterator();
Person p;
Children c;

try
{
  while (it.hasNext())
  {
    p = (Person) it.next();
    System.out.println("p.id: " + p.getId());

    c = p.getChildren();
    System.out.println("children.name: " + c.getName());  // Zeile 122
  }
} catch (Exception e)
{
  e.printStackTrace();
}


Manchmal liefert die Zeile c = p.getChildren(); einen null-Wert, obwohl ich keine Änderungen beim Parameter vornehme. Ich könnte zwar zusätzlich die NullPointer-Exception fangen aber das ändert nichts am Grundproblem, dass die Funktion mit den selben Parametern unterschiedliche Ergebnisse liefert.

Nachdem ich den JBoss AS neu gestartet habe funktioniert es einige Zeit ohne Probleme - es kann aber nicht sein, dass ich den AS immer wieder neu starten muss damit es funktioniert.

Hoffentlich kann mir jemand von euch weiterhelfen.


Vielen Dank im Voraus,
Alex


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

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.