2

私は私の質問についてインターネット上で答えを見つけることができないので、ここでいくつかの情報を得たいと思っています:-)

参考までに、ここに私の最初のクラス 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 でできることはありますか?

あなたの助けについて前もって感謝します

クレメント

4

0 に答える 0