2011-03-07 64 views
0

将相同的实体存储在Hibernate中对于Hibernate来说,这是非常新的,所以这对你们来说可能是一件容易的事情。如何在Hibernate中的多元列表中使用JPA

由于主题说我试图引用多个列表中的同一个实体。但是,当我尝试这样做时,我得到一个异常说:“关键的'military_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 
} 

时,我想提出一个单位出现的问题同时进入2个城市。 如何将映射更改为存档?

Thx提前。

+0

单位CAN属于多个引用是否正确? – Dewfy 2011-03-07 10:24:10

回答

2

我想引用同一实体多个列表 看你的代码后,我想你的意思是,相同MilitaryUnitData在几个CityData使用?

如果这是正确的,比维吾尔船舶是M:N关系的船,你需要使用一个@ManyToMany代替@OneToMany的。

相关问题