我在JPA实体中定义了一个复合ID,实体A.在另一个实体中,实体B,我有一个@ManyToOne
注释回到实体A.我正在尝试使用@JoinColumns
实体B,指定构成实体A中复合键的列。
在EntityB中,我有:
@ManyToOne
@JoinColumns({
@JoinColumn(name="Column1", referencedColumnName = "Column1"),
@JoinColumn(name="Column2", referencedColumnName = "Column2")
})
private EntityA entityA;
我一直得到这个例外:
EntityA not mapped to a single property
有什么想法吗?感谢。
答案 0 :(得分:1)
你需要在你的问题中包含EntityA和复合id类,但一般来说你是在正确的道路上,以下是一个类似的工作例子,也许它会有所帮助
@NotNull
@ManyToOne
@JoinColumns({
@JoinColumn(name = "ENTITYA_PARTA",
referencedColumnName = "PARTA"),
@JoinColumn(name = "ENTITYA_PARTB",
referencedColumnName = "PARTB")
})
protected EntityA entityA;
和EntityA
@Entity
public class EntityA {
@EmbeddedId
protected EntityId id;
和EntityId
@Embeddable
public class EntityId implements Serializable {
protected String partA;
protected String partB;
protected EntityId() {
}