-->
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.  [ 8 posts ] 
Author Message
 Post subject: Name der Tabelle ermitteln aus Sicht der Bean
PostPosted: Wed Aug 16, 2006 5:37 pm 
Newbie

Joined: Fri Jun 23, 2006 9:47 am
Posts: 9
Hibernate version: 3.1.2

Hallo,

ich habe folgendes Problem:

Gibt es eine einfache Möglichkeit über das Geschäftsobjekt (die Instanz der gemappten Bean) an den Tabellennamen der dazugehörigen Datenbanktabelle zu kommen?

Ansonsten würde ich über die Mappingdatei mittels dom4j oder jdom den Tabellennamen von Hand auslesen.
Aber da Hibernate das für das Mapping ja auch macht, geht es bestimmt einfacher, oder?

Weiß jemand Rat?

Danke,

Gruß
mondoshawan


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 1:24 am 
Regular
Regular

Joined: Mon Mar 06, 2006 6:18 am
Posts: 95
Location: Bern, Switzerland
Hallo!

Mit der Hibernate Configuration kommst du zu der Tabelle des Beans. In meinem Beispiel brauche ich noch die LocalSessionFactoryBean da dich Spring benutze. (entity ist das bean)

Code:
   LocalSessionFactoryBean lsfb = getLocalSessionFactoryBean();
      ClassMetadata meta = getSessionFactoryBean().getClassMetadata(entity.getClass());

      Configuration cfg = lsfb.getConfiguration();
      PersistentClass classMapping = cfg.getClassMapping(entity.getClass().getName());

      Table table = classMapping.getTable();


Gruss Angela


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 3:31 am 
Newbie

Joined: Fri Jun 23, 2006 9:47 am
Posts: 9
Hi,

wofür brauchst Du denn in Deinem Beispiel das ClassMetadata - Objekt?
Das wird ja eigentlich nicht weiter benutzt, oder?

Mein Problem ist auch, über die Session an die Configuration zu kommen, ich komme zwar an die SessionFactory . . und dann?

Danke,

Gruß
mondoshawan


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 3:40 am 
Regular
Regular

Joined: Mon Mar 06, 2006 6:18 am
Posts: 95
Location: Bern, Switzerland
Ich brauche das ClassMetadata - Objekt um verschiedene Validierungen anhand des Mapping files durchzuführen. (der oben gepostete Code ist nicht vollständig)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 4:44 am 
Newbie

Joined: Fri Jun 23, 2006 9:47 am
Posts: 9
Ok, ich habe es hinbekommen . . . war ja doch nicht so schwierig ;-)

Danke,

Gruß
mondoshawan


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 7:58 am 
Beginner
Beginner

Joined: Thu Jul 20, 2006 12:08 pm
Posts: 21
Location: Germany
mondoshawan wrote:
Ok, ich habe es hinbekommen . . . war ja doch nicht so schwierig ;-)

Danke,

Gruß
mondoshawan


könntest Du die Lösung bitte hier posten ;-)


gruß marlon


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 17, 2006 8:54 am 
Newbie

Joined: Fri Jun 23, 2006 9:47 am
Posts: 9
die Lösung hat Angela ja eigentlich schon gepostet . . . ;-)


Also:

Ich habe ein HibernateUtil, das ein Configuration - Objekt besitzt, mit dem ich die SessionFactory und dann die Session erzeuge (die Session wird innerhalb des Thread mehrfach verwendet).

Dieses Configuration-Objekt (was ja eigentlich nach der Initialisierung von Hibernate nicht mehr benötigt wird) hole ich mir dann ganz einfach in der Anwendung mit:

Configuration c = HibernateUtil.getConfiguration();

und dann:

PersistentClass pc = c.getClassMapping(beaninstance.getClass.getName());
String tablename = pc.getTable.getName();

Das Configuration-Objekt ist ja eigentlich nur ein "Topf" mit Informationen, damit kann man auch noch so einiges mehr machen,
"beaninstance" ist eben die in der Anwendung irgendwie verwendete Bean.

Eine einfache und gute Lösung wie ich finde ;-)

Gruß
mondoshawan


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 01, 2006 11:44 am 
Newbie

Joined: Fri Sep 01, 2006 2:28 am
Posts: 4
mondoshawan wrote:
Eine einfache und gute Lösung wie ich finde ;-)

Eine schlechte Lösung, wie ich finde... aber (wahrscheinlich) leider nicht anders lösbar. Schade, dass dies nicht auf der Session bzw. SessionFactory angefragt werden kann, sondern via Configuration.

Hmm...


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