小编Bap*_*set的帖子

"组合不兼容的数据类型"导致JPA中的"无法初始化集合"具有继承的双向关系

我试图在Hibernate,JPA中实现以下图表.

在此输入图像描述

我试着用这种方式实现它.

对于农场

@Entity
public class Farm implements Serializable{

    @OneToMany(mappedBy = "farm", cascade = { CascadeType.ALL }, targetEntity=AbstractAnimals.class, fetch=FetchType.LAZY)
    private List<AbstractAnimal> animals = new ArrayList<AbstractAnimals>();

}
Run Code Online (Sandbox Code Playgroud)

对于抽象的Annimal

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractAnimal implements Serializable{
    @Id
    private int id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "farmId", nullable = false)
    private Farm farm;

    ... other attributes and getter and setter
}
Run Code Online (Sandbox Code Playgroud)

对于抽象哺乳动物

@MappedSuperClass
public abstract class AbstractMammalian extends AbstractAnimal implements Serializable{
    ... other attributes and getter and setter
}
Run Code Online (Sandbox Code Playgroud)

对于所有的动物 …

java inheritance hibernate jpa

5
推荐指数
1
解决办法
5876
查看次数

标签 统计

hibernate ×1

inheritance ×1

java ×1

jpa ×1