Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate无法实例化抽象类或接口_Java_Hibernate_Abstract Class - Fatal编程技术网

Java Hibernate无法实例化抽象类或接口

Java Hibernate无法实例化抽象类或接口,java,hibernate,abstract-class,Java,Hibernate,Abstract Class,我有以下项目: @Entity @Table(name = "A") public class A{ @Id private Long id = null; @OneToMany(mappedBy = "a_1", cascade = CascadeType.ALL, fetch = FetchType.EAGER) private List<B> bs; } @Entity @Table(name = "B") @I

我有以下项目:

@Entity
@Table(name = "A")
public class A{
    @Id
    private Long id = null;

    @OneToMany(mappedBy = "a_1", cascade = CascadeType.ALL,
               fetch = FetchType.EAGER)
    private List<B> bs;
}

@Entity
@Table(name = "B")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "BTYPE",
                     discriminatorType = DiscriminatorType.STRING)
public abstract class B{
    @Id
    private Long id = null;

    @Embedded
    private C c;

    @ManyToOne(cascade=CascadeType.REFRESH)
    @JoinColumn(name="a_id")
    @XmlTransient
    private A a_1;
}

@Embeddable
public class C {
@OneToMany(mappedBy = "b_1", cascade = CascadeType.ALL,
           fetch = FetchType.EAGER))
    private Set<D> ds;
}

@Entity
@Table(name = "D")
public class D {
@ManyToOne(cascade=CascadeType.REFRESH)
    @JoinColumn(name="b_id")
    private B b_1;
}

@Entity
@DiscriminatorValue(value = "X_D")
public class X extends B {

}

@Entity
@DiscriminatorValue(value = "Y_D")
public class Y extends B {

}
@实体
@表(name=“A”)
公共A类{
@身份证
私有长id=null;
@OneToMany(mappedBy=“a_1”,cascade=CascadeType.ALL,
fetch=FetchType.EAGER)
私人名单;
}
@实体
@表(name=“B”)
@继承(策略=InheritanceType.SINGLE_表)
@鉴别器列(name=“BTYPE”,
discriminatorType=discriminatorType.STRING)
B类公开摘要{
@身份证
私有长id=null;
@嵌入
私人C C;
@manytone(cascade=CascadeType.REFRESH)
@JoinColumn(name=“a_id”)
@XmlTransient
私人A_1;
}
@可嵌入
公共C类{
@OneToMany(mappedBy=“b_1”,cascade=CascadeType.ALL,
fetch=FetchType.EAGER)
专用集ds;
}
@实体
@表(name=“D”)
D类公共服务{
@manytone(cascade=CascadeType.REFRESH)
@JoinColumn(name=“b_id”)
私人B_1;
}
@实体
@鉴别器值(value=“X\u D”)
公共类X扩展到B{
}
@实体
@鉴别器值(value=“Y\u D”)
公共类Y扩展B{
}
除了X和Y之外,所有这些类都实现了可序列化

当我调用entityManager.merge时(A) 我得到:

原因:org.hibernate.InstantiationException:无法实例化抽象类或接口:B

有人能帮我吗


Thnaks提前

我看到了类似的问题,人们必须创建具体的类(这里是X和Y)来实现可序列化,以使其工作