我有实体的,我要添加字段,它是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