我是Hibernate的新手,所以这对你们来说可能是一项轻松的任务。
正如主题所说,我试图在多个列表中引用同一个实体。但是,当我尝试这样做时,我得到一个例外说:“对'key_id''重复输入'5'”。 我用Google搜索但无法找到解决问题的方法。
我有一个名为MilitaryUnitData的实体,如下所示:
@Entity
public class MilitaryUnitData implements IMovable{
private long Id;
//snip
@Id
@GeneratedValue(strategy=GenerationType.TABLE)
public long getId() {
return Id;
}
public void setId(long id) {
Id = id;
}
//snip
}
和我想要存储单位的城市。
@Entity
public class CityData {
private Collection<MilitaryUnitData> military = new ArrayList<MilitaryUnitData>();
private String name;
//snip
@Id
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany
@Column(nullable=false)
public Collection<MilitaryUnitData> getMilitary() {
return military;
}
public void setMilitary(Collection<MilitaryUnitData> military) {
this.military = military;
}
//snip
}
当我想要同时将一个单位放入两个城市时,会出现问题。 如何更改映射以实现此目的?
提前谢谢。答案 0 :(得分:2)
我正在尝试在多个列表中引用同一个实体 在查看您的代码后,我认为您的意思是,在
MilitaryUnitData
多个CityData
中使用了相同的@ManyToMany
?
如果这是正确的,那么实船是一艘M:N关系船,您需要使用@OneToMany
代替{{1}}。