Java hibernate中的HashMap包含他自己

Java hibernate中的HashMap包含他自己,java,hibernate,collections,Java,Hibernate,Collections,我有实体,我想添加一个字段,它是hashMap,它包含他自己和出现的次数 @Entity public class MyClass { ... @OneToMany(fetch=FetchType.LAZY) @Fetch(FetchMode.SUBSELECT) private Map<MyClass, Integer> myClassRelation = new HashMap<MyClass, Integer>(); ....

我有实体,我想添加一个字段,它是hashMap,它包含他自己和出现的次数

@Entity
public class MyClass {
    ...
    @OneToMany(fetch=FetchType.LAZY)
    @Fetch(FetchMode.SUBSELECT)
    private Map<MyClass, Integer> myClassRelation = new HashMap<MyClass, Integer>();
    ....
}

如何将同一对象多次添加到此集合。我应该使用哪种集合类型?

您有一种自反关系,这意味着。您的MyClass与您的MyClass相关

MyClass 1 --> * MyClass
所以当你做下面的事情时

myOterClass.getMyClassRelation().add(myClass);
myOterClass.getMyClassRelation().add(myClass);

您正在尝试两次添加相同的值。因为
MyClass
只有一个表

显示完整的MyClass类。似乎您有ID或唯一约束。是的,我有:@ID@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name=“f_ID”,nullable=false)私有长ID;那又怎样?我不会多次创建相同的元素。我将现有元素(MyClass MyClass=new MyClass();)添加到列表中,那么,如何才能达到描述的关系。我必须有可能添加到阵列重复。我创建了包含myClass和事件数的Map,但正如我在第一篇文章中所说的,使用OneToMany注释和Map时会出现错误。有什么想法吗?
MyClass 1 --> * MyClass
myOterClass.getMyClassRelation().add(myClass);
myOterClass.getMyClassRelation().add(myClass);