我有一个映射到表的聚会类,并用 @entity 进行注释,如下所示:
@entity
@Table(name = "PARTY")
public class party{
@Id
protected long partyId;
}
我还有一个代表地址的类:
@entity
@Table(name = "ADDRESS")
public class address{
@Id
protected long partyId;
}
参与方 ID 可以用作外键,从地址表中获取地址。
有时我想返回一个派对本身,有时我想返回一个带有地址的派对。我想我可以创建一个单独的类来扩展 party 但添加地址,如下所示:
public class partyWithAddress extends party{
@OneToMany
private List<Address> addresses;
}
但是我收到错误:
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: partyWithAddress
我读过有关实体继承的内容,但我仍然很迷失。有人可以帮忙吗?
最佳答案
如果你的类不是实体那么它不会被JPA识别,你需要先用@Entity注释它,然后是你想要使用的继承策略,默认情况下使用单表继承,这意味着所有 child 和它们的父级位于一张表中,如果您的实体之间没有太大差异,建议您这样做,有关继承的更多信息,请检查此 link
关于java - 扩展实体类的非实体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515065/