我在互联网上找不到关于我的问题的答案,所以我希望在这里有一些信息: - )
仅供参考,这是我的第一堂课,Attribut:
@Entity
@Table(name="T_ATTRIBUT")
public class Attribut implements Serializable{
private long id;
private Set<LocString> label = new HashSet<LocString>(0);
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
public Set<LocString> getLabel() {
return label;
}
...
这是LocString类:
@Entity
@Table(name="T_LOC_STRING")
public class LocString implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private long id;
@Column(name="LOCALE")
private String locale;
@Column(name="VALUE")
private String value;
现在,我在我的数据库中有一个已经保存的Set of LocString的attribut。 我想创建一个新的Attribut(具有一个新的id),但使用完全相同的LocString Set(数据库中的相同引用,内存中的相同引用,相同的id)。当我尝试保存我的attribut时,我有以下例外:
org.springframework.orm.hibernate4.HibernateSystemException: Found shared references
to a collection: com.nomia.onmap.model.Attribut.label; nested exception is
org.hibernate.HibernateException: Found shared references to a collection
如何避免此异常。是否可以使用hibernate?
非常感谢您的帮助
克莱门特