-->
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.  [ 2 posts ] 
Author Message
 Post subject: Probleme mit Hibernate und Kreuztabelle
PostPosted: Wed Oct 24, 2007 12:08 pm 
Newbie

Joined: Wed Oct 24, 2007 11:37 am
Posts: 1
Hallo zusammen,
ich habe folgendes Problem:

Ich habe eine Swing GUI gebaut und möchte in dieser eine Liste an Usern aus der Datenbank (Tabelle CNR_USER) ausgeben. Diese User können mehrere Rollen haben (Tabelle CNR_ROLE), sie sind verbunden über die Tabelle CNR_USER_ROLE, wo die user_id auf verschiedene role_id gemappt wird. In Java benutze ich nun hbm.xml Files zum Mappen auf die Tabellen. In der user.hbm.xml habe ich die Rollen nun eingebunden über

Code:
<set name="userRoles" table="CNR_USER_ROLE" lazy="false">
<key column="user_id" />
<many-to-many column="role_id" class="com.skidata.connector.db.hibernatemodel.Role" />
</set>


In der User.java dazu werden die Rollen folgendermassen gehandelt:

Code:
private Set<Role> userRoles = new HashSet<Role>(0);

public Set<Role> getUserRoles() {
   return this.userRoles;
}

public void setUserRoles(Set<Role> userRoles) {
   this.userRoles = userRoles;
}


Wenn ich nun einen User aufrufe und in Eclipse debugge, werden die Roles schon nicht ordentlich gelesen, schmeissen aber keine Exception, nur im Debug Fenster taucht die Meldung "com.sun.jdi.InvocationException occurred invoking method" auf.

Wenn ich nun Versuche direkt die Rollen für einen User aufzurufen, erhalte ich folgende Exception:

Code:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.skidata.connector.db.hibernatemodel.User.userRoles, no session or session was closed
   at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
   at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
   at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
   at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
   at org.hibernate.collection.PersistentSet.toString(PersistentSet.java:253)
   at java.lang.String.valueOf(String.java:2615)
   at java.lang.StringBuilder.append(StringBuilder.java:116)
   at com.skidata.connector.db.hibernatemodel.generated.UserBase.getUserRoles(UserBase.java:128)
   at com.skidata.connector.db.hibernatemodel.User.cloneUser(User.java:97)


Das ganze läuft auf einem JBoss 4.0, welcher auch die DB Connection regelt. Die Datenbank ist ein MSSQL Server 2000.

Hat jemand eine Ahnung, woran es liegen könnte, kann ich vielleicht ähnlich einer Webanwendung auch in einer GUI so etwas wie OpenSessionInView oder so nutzen ? Oder reicht vielleicht schon eine Anpassung im hbm.xml File oder ähnliches ?

Bin für alle Ideen und Ratschläge dankbar !

Grüße
vom Sascha


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 26, 2007 4:51 pm 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Aus irgendeinem Grund sind die Rollen nicht initialisiert. Du müsstest zeigen, wie Du die Daten lädst und wo genau der Fehler passiert (Swing, JBoss).

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.