Java 泛型bi-dir一对多关系
我想知道JPA2.0中是否存在使用泛型的方法 考虑以下情况:Java 泛型bi-dir一对多关系,java,hibernate,jpa,eclipselink,Java,Hibernate,Jpa,Eclipselink,我想知道JPA2.0中是否存在使用泛型的方法 考虑以下情况: @Entity public class GenericPhoto<T> implements Serializable { @Id @GeneratedValue private long id; @NotNull private byte[] file; @ManyToOne(cascade = { CascadeType.DETACH }) @JoinColumn(name = "P
@Entity
public class GenericPhoto<T> implements Serializable {
@Id
@GeneratedValue
private long id;
@NotNull
private byte[] file;
@ManyToOne(cascade = { CascadeType.DETACH })
@JoinColumn(name = "PARENTID", nullable = false)
@NotNull
private T parent;
//...
}
@Entity
public Car {
@OneToMany(mappedBy = "parent")
private Set<GenericPhoto<Car>> photos;
//...
}
@Entity
public Truck {
@OneToMany(mappedBy = "parent")
private Set<GenericPhoto<Truck>> photos;
//...
}
@实体
公共类GenericPhoto实现了可序列化{
@身份证
@生成值
私人长id;
@NotNull
私有字节[]文件;
@manytone(cascade={CascadeType.DETACH})
@JoinColumn(name=“PARENTID”,nullable=false)
@NotNull
私人T型父母;
//...
}
@实体
公共汽车{
@OneToMany(mappedBy=“家长”)
私人套装照片;
//...
}
@实体
公共卡车{
@OneToMany(mappedBy=“家长”)
私人套装照片;
//...
}
我希望代码能解释这一切。我只是想为photo创建一个通用类,我认为这样可以更容易地实现服务等等
最好的问候当您使用泛型时,它类似于不键入字段(即对象父对象),因此您需要告诉JPA如何映射关系。为此,您可以在JPA中使用targetEntity
为此,您需要一个普通的超类来实现汽车和卡车,即AutoAt,并将目标实体设置在@ ManyToOne到Auto上(您也可以考虑将照片移动到AUTO)。
如果由于某种原因不能使用继承(最好使用继承)。然后,如果您使用EclipseLink,您可以使用@VariableOneToOne关系。当您使用泛型时,它类似于不键入字段(即对象父对象),因此您需要告诉JPA如何映射关系。为此,您可以在JPA中使用targetEntity
为此,您需要一个普通的超类来实现汽车和卡车,即AutoAt,并将目标实体设置在@ ManyToOne到Auto上(您也可以考虑将照片移动到AUTO)。
如果由于某种原因不能使用继承(最好使用继承)。然后,如果您使用EclipseLink,您可以使用@VariableOneToOne关系。谢谢,我将选择继承=)谢谢,我将选择继承=)