일대 다 관계로 doc_table과 code_table 두 개의 테이블이 있습니다. doc_table에서 항목을 삭제하는 서비스를 정의했는데 code_table의 해당 항목을 동시에 삭제해야합니다 (계단식 삭제). 여기에이 서비스를 실행하면, 그것은 Doc_table에서 항목을 삭제하지만,이 Code_table에 삭제 계단식하지 않는 서비스주석을 사용하여 최대 절전 모드에서 계단식 삭제를 허용하는 최대 절전 모드 설정
public void deleteDoctable(String anumber) throws DataBaseAccessException {
Session session = null;
try {
session = HibernateUtils.beginTransaction("emscribedx");
Query q = session.createQuery("delete Doc_table where docnumber = :docnum");
q.setParameter("docnum", anumber);
q.executeUpdate();
session.getTransaction().commit();
} catch (HibernateException e_) {
e_.printStackTrace();
}
finally {
try {
HibernateUtils.closeSessions();
} catch (Exception e) {
NTEVENT_LOG.error("Problem closing hibernate session!!!");
}
}
}
입니다. 아래는 내가 사용하고있는 Doc_table의 주석이 달린 모델이다. cascadeType.All을 사용하여 일대 다 관계에 주석을 추가합니다. 그러나 나는 여전히 예상되는 캐스케이드 삭제를 얻지 못하고있다.
무슨 일이 벌어지고 있는지에 대한 아이디어가 있으십니까? import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.lucene.Text;
import com.artificialmed.domain.code.model.Code_table;
@Entity
@Table (name="doc_table", catalog="emscribedx")
public class Doc_table {
private Long _id;
private String _acct;
private String _message;
private String _document;
private String _doctype;
private String _review_date;
private String _createDate;
private int _dummyflag;
private String _reviewer;
private String _ProcedureDocLast;
private String _ProcedureDocFirst;
private String _ProcedureDocMiddle;
private String _ProcedureDate;
private String _ProcedureDocNumber;
private String _Note;
private String _dbcreate_date;
private String _docnumber;
private String _selectedcodes ;
private int _viewed ;
private int _postsubmit ;
private List <Code_table> _code_table;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column (name = "id")
public Long getId() {
return _id;
}
public void setId(Long id_) {
_id = id_;
}
@Column (name = "acct")
public String getAcct() {
return _acct;
}
public void setAcct(String acct_) {
_acct = acct_;
}
@Column (name = "message")
public String getMessage() {
return _message;
}
public void setMessage(String message_) {
_message = message_;
}
@Column (name = "document")
public String getDocument() {
return _document;
}
public void setDocument(String document_) {
_document = document_;
}
@Column (name = "doctype")
public String getDoctype() {
return _doctype;
}
public void setDoctype(String doctype_) {
_doctype = doctype_;
}
@Column (name = "review_date")
public String getReview_date() {
return _review_date;
}
public void setReview_date(String reviewDate_) {
_review_date = reviewDate_;
}
@Column (name = "create_date")
public String getCreateDate() {
return _createDate;
}
public void setCreateDate(String createDate_) {
_createDate = createDate_;
}
@Column (name = "dummyflag")
public int getDummyflag() {
return _dummyflag;
}
public void setDummyflag(int dummyflag_) {
_dummyflag = dummyflag_;
}
@Column (name = "reviewer")
public String getReviewer() {
return _reviewer;
}
public void setReviewer(String reviewer_) {
_reviewer = reviewer_;
}
@Column (name = "ProcedureDocLast")
public String getProcedureDocLast() {
return _ProcedureDocLast;
}
public void setProcedureDocLast(String procedureDocLast_) {
_ProcedureDocLast = procedureDocLast_;
}
@Column (name = "ProcedureDocFirst")
public String getProcedureDocFirst() {
return _ProcedureDocFirst;
}
public void setProcedureDocFirst(String procedureDocFirst_) {
_ProcedureDocFirst = procedureDocFirst_;
}
@Column (name = "ProcedureDocMiddle")
public String getProcedureDocMiddle() {
return _ProcedureDocMiddle;
}
public void setProcedureDocMiddle(String procedureDocMiddle_) {
_ProcedureDocMiddle = procedureDocMiddle_;
}
@Column (name = "ProcedureDate")
public String getProcedureDate() {
return _ProcedureDate;
}
public void setProcedureDate(String procedureDate_) {
_ProcedureDate = procedureDate_;
}
@Column (name = "ProcedureDocNumber")
public String getProcedureDocNumber() {
return _ProcedureDocNumber;
}
public void setProcedureDocNumber(String procedureDocNumber_) {
_ProcedureDocNumber = procedureDocNumber_;
}
@Column (name = "Note")
public String getNote() {
return _Note;
}
public void setNote(String note_) {
_Note = note_;
}
@Column (name = "dbcreate_date")
public String getDbcreate_date() {
return _dbcreate_date;
}
public void setDbcreate_date(String dbcreateDate_) {
_dbcreate_date = dbcreateDate_;
}
@Column (name = "docnumber")
public String getDocnumber() {
return _docnumber;
}
public void setDocnumber(String docnumber_) {
_docnumber = docnumber_;
}
@Column (name = "selectedcodes")
public String getSelectedcodes() {
return _selectedcodes;
}
public void setSelectedcodes(String codes_) {
_selectedcodes = codes_;
}
@Column (name = "viewed")
public int getViewed() {
return _viewed;
}
public void setViewed(int viewed_) {
_viewed = viewed_;
}
@Column (name = "postsubmit")
public int getPostsubmit() {
return _postsubmit;
}
public void setPostsubmit(int postsubmit_) {
_postsubmit = postsubmit_;
}
@OneToMany (mappedBy = "doc_table", targetEntity = Code_table.class, cascade = CascadeType.ALL)
public List <Code_table> getCode_table() {
return _code_table;
}
public void setCode_table(List <Code_table> codeTable_) {
_code_table = codeTable_;
}
Session.get()은 선택 쿼리를 만듭니다. Session.load()는 아무것도로드하지 않습니다 (예, 좋은 이름입니다!). –
으악, 그걸 잡기위한 tx – Affe
당신은 환영합니다 :) –