2016-06-27 8 views
0

で更新します。私は、参照クラスを使用してい 、ここではクラスである:Hibernateは私が私の更新ステートメントでの多対多の関係を更新するリスト

public class Reference implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy=GenerationType.AUTO, generator="user_gen") 
@SequenceGenerator(name="user_gen", sequenceName="SEQ_USER") 
@Column(name = "DOCUMENTID", nullable = false) 
private int documentID; 

@Column(name = "REFERENCE") 
private String reference = ""; 

@Column(name = "CODE") 
private String code = ""; 

@Column(name = "REMARK") 
private String remark = ""; 

@Column(name = "TITLE") 
private String title = ""; 

@ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER) 
@JoinTable(name = "DOCUMENTS_MACHINES", joinColumns = { @JoinColumn(name = "DOCUMENTID") }, inverseJoinColumns = { @JoinColumn(name = "MACHINEID") }) 
private Set<Machine> machines = new HashSet<Machine>(); 

私はsession.update(オブジェクト)があるため、競合の問題を引き起こすので、HQL文で多対多の関係を更新することが可能であるかどうかを知りたいです不足しているプロパティの

私が試したもの:

 String hqlUpdate = "update Reference r " + 
      "set r.title = :title, " + 
      "r.machines = :machines " + 
      "where r.documentID = :id"; 

    int updatedEntities = session.createQuery(hqlUpdate) 
      .setString("title", reference.getTitle()) 
      .setParameterList("machines", reference.getMachines()) 
      .setInteger("id", reference.getDocumentID()) 
      .executeUpdate(); 

しかし、それは動作しませんので、私の質問です:それは、コレクションとどのように更新することは可能ですか?

many to many hibernate update

はまたCascadeTypeを見て:多くのHibernateの更新マッピングのクエリ例に多くのことを

答えて

0

チェック 感謝。あなたは直接関係の注釈にCascadeTypeを使用して保存/更新操作のための動作を設定することができます。

関連する問題