私は私の質問についてインターネット上で答えを見つけることができないので、ここでいくつかの情報を得たいと思っています:-)
参考までに、ここに私の最初のクラス 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;
現在、データベースには、既に保存されている LocString のセットを持つ属性があります。新しい属性 (新しい ID を持つ) を作成したいのですが、まったく同じ LocString のセット (データベース内の同じ参照、メモリ内の同じ参照、同じ ID) を使用します。属性を保存しようとすると、次の例外があります。
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 でできることはありますか?
あなたの助けについて前もって感謝します
クレメント