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();
しかし、それは動作しませんので、私の質問です:それは、コレクションとどのように更新することは可能ですか?
はまたCascadeTypeを見て:多くのHibernateの更新マッピングのクエリ例に多くのことを