我有實體的,我要添加字段,它是HashMap中包含自己和出現次數HashMap的休眠包含自己
@Entity
public class MyClass {
...
@OneToMany(fetch=FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private Map<MyClass, Integer> myClassRelation = new HashMap<MyClass, Integer>();
....
}
我想達到以下結果:我希望有一些集合從而可以包含MyClass類的MyClass類的集合,我想有可能向這個集合添加重複項。我試圖去夠,使用ArrayList的,但是當我加入重複:
@Entity
public class MyClass {
...
@OneToMany(fetch=FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private List<MyClass> myClassRelation = new ArrayList<MyClass>();
....
}
MyClass myClass = new MyClass();
//add the same object 2 times
myOterClass.getMyClassRelation().add(myClass);
myOterClass.getMyClassRelation().add(myClass);
,然後我有以下錯誤:
org.hibernate.exception.ConstraintViolationException: Violation of UNIQUE KEY constraint 'UQ__FORMULAR__058FE285EB0330EE'. Cannot insert duplicate key in object
我怎麼能同一個對象多次添加到此集合。我應該使用哪種集合類型?
顯示完整的MyClass類。看起來像你有一個ID或唯一約束。 – shazin
是的,我有:@Id \t @GeneratedValue(策略= GenerationType.IDENTITY) \t @Column(name = 「F_ID」,可爲空= FALSE) \t私人長期ID;等什麼?我不會創造許多次相同的元素。我將現有的元素(MyClass myClass = new MyClass();)添加到列表 – user2539823