Java 如何设置;mappedBy“;在实体的子类中?
我想将现有的JPA实体拆分为POJO超类和实体子类。我想将POJO超类放入一个库项目中,该项目可以被其他不使用JPA的项目引用 我的旧代码/现有代码成功声明了一个OneToMany关系,如下所示:Java 如何设置;mappedBy“;在实体的子类中?,java,hibernate,jpa,Java,Hibernate,Jpa,我想将现有的JPA实体拆分为POJO超类和实体子类。我想将POJO超类放入一个库项目中,该项目可以被其他不使用JPA的项目引用 我的旧代码/现有代码成功声明了一个OneToMany关系,如下所示: @Entity public class Person { @OneToMany(mappedBy="petOwner") public List<Pet> pets = new ArrayList<>(); } @Entity @Access(AccessT
@Entity
public class Person {
@OneToMany(mappedBy="petOwner")
public List<Pet> pets = new ArrayList<>();
}
@Entity
@Access(AccessType.PROPERTY)
public class JpaPerson extends CommonPerson {
@OneToMany(mappedBy="petOwner")
public List<Pet> getPets() {
return pets;
}
public void setPets(List<Pet> pets) {
this.pets = pets;
}
}
我正在使用Hibernate JPA api 2.1。谢谢@petros splinakis 我现在用的是这样的东西:
@Entity
public class Person {
@OneToMany(mappedBy="petOwner")
public List<Pet> pets = new ArrayList<>();
}
@Entity
@Access(AccessType.PROPERTY)
public class JpaPerson extends CommonPerson {
@OneToMany(mappedBy="petOwner")
public List<Pet> getPets() {
return pets;
}
public void setPets(List<Pet> pets) {
this.pets = pets;
}
}
@实体
@访问权限(AccessType.PROPERTY)
公共类JpaPerson扩展了普通人{
@OneToMany(mappedBy=“petOwner”)
公共列表getPets(){
归还宠物;
}
公共宠物(列出宠物){
这个。宠物=宠物;
}
}
它就像一个符咒 如果在MappedSuperclass方法中使用@瞬态注释,则可以在同一方法的子类中使用任何其他JPA注释。因此,您可以在子类中“扩展”JPA注释。实际上从未尝试过,但如果您重写getter并对其进行注释,它应该会起作用。请记住,如果您计划混合字段和属性访问类型,则需要使用@access annotation指定。