Ich möchte eine ManyToMany-Beziehung in meiner Update-Anweisung aktualisieren. Ich Referenz-Klasse, hier ist die Klasse:Hibernate Aktualisierung mit Liste
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>();
Ich würde gerne wissen, ob es möglich ist, eine ManyToMany Beziehung in einer HQL Aussagen laufend zu aktualisieren, da session.update (Objekt) Konflikte Problem verursachen würde, weil von fehlenden Eigenschaften.
Was ich versucht habe:
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();
Aber es funktioniert nicht, so meine Frage ist: Ist es möglich, eine Sammlung zu aktualisieren, und wie? Dank