0
업데이트 문에서 ManyToMany 관계를 업데이트하려고합니다. session.update (객체) 때문에 갈등의 문제를 야기하기 때문에이 HQL 문에서 ManyToMany 관계를 업데이트 할 수있는 경우목록으로 최대 절전 모드로 업데이트
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>();
내가 알고 싶습니다 : 나는 참조 클래스를 사용하고 , 여기에 클래스 속성이 누락되었습니다.
내가 무엇을 시도했다 :
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를 보라 : 많은 최대 절전 모드 업데이트 매핑 쿼리 예를 들어 많은 것을