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)来实现可序列化,以使其工作