-->
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: ClassCast zwischen ähnlichen Beans
PostPosted: Thu Sep 21, 2006 3:05 am 
Beginner
Beginner

Joined: Thu Sep 21, 2006 2:49 am
Posts: 24
ClassCast zwischen ähnlichen Beans

Hibernate version: 3.2.0 CR4 mit Annotationen

DB: MySQL

Ich habe z.B. folgende Beans die ich gegenseitig casten möchte:
MethaBean extends Object
Person extends Metha Bean
Employee extends Person
User extends Person
Für die Vererbung verwende ich die Table per subclass strategie.
Eine Person kann mal ein Employee sein und auch mal ein User sein - je nach Context. Nachdem nun für jede Vererbungshirarchie eine eigene Tabelle in der DB angelegt wird müsste es doch möglich sein zwischen den Tabellen zu springen (zu Casten). Ich habe in der dokumentation dazu nichts finden können. Vielleicht kann mir jemand aus dem Forum helfen. Danke!

Folgender Code liefert immer einen Employee, weil ich dieses Object als Employee angelegt habe. Aber wie kann ich daraus einen User bzw. eine Person machen? (Das das zweite bean eine ClasCastException erzeugt ist natürlich klar)
Code:
        Session session = SessionFactory.currentSession();
        Long lID = new Long(1030);
        Object bean1 = null;
        Object bean2 = null;
        Object bean3 = null;
        try
        {
            bean1 = (Person)session.get(Person.class, lID);
            bean3 = (Employee) session.get(Employee.class, lID);
            bean2 = (User) session.get(User.class, lID);
           
        }
        catch (ClassCastException e)
        {
            e.printStackTrace();
        }
        System.out.println("1 Person :" + bean1);
        System.out.println("2 User :" + bean2);
        System.out.println("3 Employee :" + bean3);


Ausgabe:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
[2006.09.21][com.dooris.util.hibernate.SessionFactory][][DEBUG]: hibernate SessionFactory created by
[2006.09.21][com.dooris.util.hibernate.SessionFactory][][DEBUG]: hibernate session opened by
java.lang.ClassCastException: com.dooris.util.beans.Employee
at com.dooris.test.HibernateTest.main(HibernateTest.java:39)
1 Person :dooris.util.beans.Employee: Bauer Florian (1030)
2 User :null
3 Employee :dooris.util.beans.Employee: Bauer Florian (1030)


Gruß,
Florian

_________________
http://www.dooris.de


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 21, 2006 2:23 pm 
Beginner
Beginner

Joined: Thu Sep 21, 2006 2:49 am
Posts: 24
siehe folgenden thread:
http://forum.hibernate.org/viewtopic.ph ... highlight=

_________________
http://www.dooris.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.