我目前有这样的事情:
public class Particle extends Entity
{
private Image image;
...
@OneToOne(targetEntity = Image.class, cascade = CascadeType.ALL)
@JoinColumn(name = "imageId")
public Image getImage() {
return image;
}
}
这很好用,但是由于另一个处理,我需要相同而不引用该对象。 所以我需要的是这个:
public class Particle extends Entity
{
private int imageId;
...
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "imageId")
public int getImage() {
return imageId;
}
}
显然我得到一个例外,它说Particle类引用了一个未知实体。 有没有办法,只是提供一个id为FK的图像,而不是直接设置对象? 在数据库表中,imageId已经是整数列。
答案 0 :(得分:0)
您可以使用@SecondaryTable
(documentation)
它看起来像这样
@Entity
@Table(name = "particle")
@SecondaryTable(name = "image", pkJoinColumns=@PrimaryKeyJoinColumn(name="id", referencedColumnName="imageId"))
public class Particle extends Entity {
...
@Column(table="image", name="imageId")
public int getImageId() {
return imageId;
}
}