我需要JPA继承的帮助
我将举例说明我的问题:
我们有一个Animal类和一个Cat类。
@Entity
@Table(name = "animal")
@DiscriminatorColumn(name="animal_type",columnDefinition="Integer",length=11)
public class Animal implements Serializable{
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
@Column(name = "animal_id", nullable = false)
private Long id;
...
}
@Entity
@Table(name = "cat")
@DiscriminatorValue("1")
@AttributeOverride(name="id",column=@Column(name="cat_id"))
public class Cat extends Animal {
...
}
如示例所示,我想在cat表中为我的id列使用不同的名称
但是当我尝试执行多态问题询问所有Animal实例时,我得到一个错误。这就像查询无法根据动物实例处理不同的字段名称。
我这样做对吗? 提前谢谢。
答案 0 :(得分:1)
您可以尝试使用此注释。我举了一个例子
@PrimaryKeyJoinColumn(name="cat_id")
public class Cat extends Animal
答案 1 :(得分:0)
不,我想我不是。
首先我忘记了@Inheritance
注释:
@Inheritance(strategy=InheritanceType.JOINED)
无论如何,我看到我可以覆盖其余的字段而不是Id。或者问题是我在查询中使用了id而不是其他字段。
答案 2 :(得分:0)
您必须使用注释@PrimaryKeyJoinColumn