【发布时间】:2012-03-30 10:18:14
【问题描述】:
我正在尝试理解 MapKey 和 MapKeyColumn 注释,但我发现它们令人困惑。我正在阅读an article,这让我更加困惑(规范部分)
我有一个带有 int 字段的实体,它不是主键:
public class Connections{
...
public final int getConnectionId() {
return this.connectionId;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "FK_StartpointTNA")
public final Endpoint getStartpoint() {
return this.startpoint;
}
...
}
在另一边我有
public class Endpoint{
...
@OneToMany(mappedBy = "startpoint", fetch = FetchType.LAZY, cascade = { javax.persistence.CascadeType.REMOVE })
@MapKeyColumn(name = "connectionId")
public Map<Integer, Connections> getConnections() {
return this.connections;
}
....
}
我真的不知道如何解决这个问题。我不断收到:org.apache.openjpa.persistence.ArgumentException:“connections”声明它是由“startpoint”映射的,但这不是相关类型的字段。
映射这个的正确方法是什么?
【问题讨论】:
标签: mapping persistence openjpa