2
저는이 포럼을 처음 접하고 최대 절전 모드입니다. 최대 절전 모드의 다 대일 매핑에 문제가 있습니다. 최대 절전 모드 외래 키가 ref 테이블의 모든 필드를 업데이트 중입니다.
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
@JoinColumn(name = "DTE_ID")
@NotNull
private Dte raisedByDte;
이
내가 주 객체와 외래 키가DTE_ID
이다에서 사용하고있는 코드입니다. 하지만 저장하려고하면 참조 된 테이블의 모든 필드가 업데이트됩니다. 내가
DTE_MASTERS
의 업데이트를 제한 할
@Entity
@Table(name = "DTE_MASTERS", uniqueConstraints = @UniqueConstraint(columnNames = "DTE_NAME"))
public class Dte {
@Id
@Column(name="DTE_ID", updatable = false, nullable = false)
private int dte_id;
@Column(name="DTE_NAME")
private String dte_name;
public Dte() {
super();
// TODO Auto-generated constructor stub
}
public Dte(int dte_id, String dte_name) {
super();
this.dte_id = dte_id;
this.dte_name = dte_name;
}
public int getDte_id() {
return dte_id;
}
public void setDte_id(int dte_id) {
this.dte_id = dte_id;
}
public String getDte_name() {
return dte_name;
}
public void setDte_name(String dte_name) {
this.dte_name = dte_name;
}
가 좀 몸이를 통해 저를 인도 해주십시오 ..can 삽입하고 때 다음과 같이 내 참조 오브젝트는?
DTE 엔티티의 메인 엔티티로로드 된 비 일시적인 필드가 트랜잭션 끝날 때 모든 변경 사항이 암시 될 것이라는 점을 명심하여 감사드립니다. session.detach (dte)를 수행해야하는 것을 방지하려면 다음을 수행하십시오. 따라서 트랜잭션 방식 내에서 수행 된 변경 사항은 데이터베이스에 유지되지 않습니다. – SRI
그래서 .. 일단 트랜잭션 내에서 엔티티를 검색하면 트랜잭션이 끝날 때까지 영속 컨텍스트 내에있게됩니다 (사용자가 evict를 호출하지 않는 한). 이제 개체 상태에 대한 모든 변경 사항이 데이터베이스에 플러시됩니다. 업데이트/saveOrUpdate를 사용했는지 여부와 관계 없음 –
확실한 @Maciej Kowalski. 빠른 응답과 안내에 대해 감사드립니다. – SRI