2016-06-27 23 views
0

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

Antwort

0

Überprüfen Sie, dass viele zu viele Hibernate Update-Mapping Abfrage Beispiel:

many to many hibernate update

auch einen Blick auf CascadeType haben. Sie können das Verhalten für Speicher-/Aktualisierungsvorgänge direkt mithilfe der CascadeType in der Beziehungsanmerkung festlegen.

Verwandte Themen