@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "tbp_user")
public class User extends EnterpriseObject {有个一个user实体类作为父类,student作为子类,@Entity
@Table(name = "tbp_student")
public class Student extends User {
现在在更新的时候我想将user对象转换成student对象,如果直接调用merge方法肯定报notfound的异常,因为没有这个student对象,如果先删除user再新增student也会报错,这两种方法是我目前多能想的了,都搞不定,,请问怎么才能在hibernate中将父类转换为子类hibernate父类子类jpaejb

解决方案 »

  1.   

    你说的是父类引用指向子类
    User u=new Student();
      

  2.   

    也应该不是,主要是要将数据库中的user对象重新存储为student对象,如果是User u=new Student();,这样最终保存的是user
      

  3.   

    http://javahello.i.sohu.com/blog/view/112906200.htmhttp://www.jdon.com/32923参考下,也许能解决你的问题
      

  4.   

    首先,对您的帮助表示感谢!我看了一下,文章中说的是懒加载的问题,但是我测试了一下发现,对于父类@Inheritance(strategy = InheritanceType.JOINED)方式下,依然是无效的,因为他在数据库中是形成两张表的即父类一张,子类引用父类附加属性成一张表,因此跟懒加载应该关系不大