Я хочу обновить отношение ManyToMany в моей инструкции по обновлению. Я использую Reference класс, вот класс:Обновление 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>();
Я хотел бы знать, если это возможно, обновить ManyToMany отношения в заявлении HQL, потому что Session.update (объект) может вызвать конфликты из-за проблемы отсутствующих свойств.
Что я пробовал:
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();
Однако, это не работает, поэтому мой вопрос: Можно ли обновить коллекцию и как? Благодаря