2013-06-10 3 views
0

에서 참조 된 엔터티를 업데이트하는 방법은 다음과 같은 한 테이블 최대 절전 모드

Question_Table:{ 
quesId int primary key, 
statusid int reference to Status_Table.statuId 
} 


Status_Table:{ 
statusId int primary key 
} 

Answers_Table:{ 
index int primary key, 
quesId int reference to Question_Table.quesId, 
answerDescription varchar 
} 
  1. 질문

    여기에 여러 개의 답변이 있습니다 Question_Table - Answer_Table는 일대 다 관계가있다.
  2. 모든 질문의 상태 ID를 가지고 Question_Table - Status_Table 가지고 대일 관계

검색어 : "완료"question_table에 : 나는 그것의 상태를 업데이트 할 최종 사용자가 answer_table 답변의 갱신에 ,하지만 내가 업데이 트를 (답변) (그것은 로그에서 확인) 답변 테이블에 불과 업데이 트를 화재, 나는 여기에 상황과 혼란스러워 내가 엔티티 사이에 직접적인 관계가 없어 - 상태 및 응답 테이블.

+0

테이블이 아니라 객체가 아니라면 ORM의 실제 성능을 사용하지 않는 것이 좋습니다. –

+0

실제 파워에 대해 더 많은 말을하고 싶습니다. 엔티티 클래스와 완벽한 orm을 사용하고 있다고 생각합니까 ??? –

답변

1

update(answer);을 수행하면 질문 테이블에서 status_id을 업데이트 할 수 없습니다.

먼저 답과 연결된 질문 테이블에서 레코드를 가져와야합니다. 그런 다음 새로운 status_id으로 가져온 질문 레코드에 대한 업데이트 쿼리를 실행해야합니다. 예를 들어

,

  1. update(answer);
  2. 경우 answer.question_id = 1, 다음을 수행하십시오 다음 할 질문 &에서 select * from question where id = 1
  3. 세트 상태 : update(question);
+0

저는이 역 또는 계단식이이 일을 할 수 있다고 생각 했습니까? –

+0

업데이트 (answer.getQuestion()); quesId 및 상태 엔티티 개체를 포함하고 완벽하게 괜찮지 만 개시된 엔티티 개체 필드는 null이며 업데이트 중 하나도 필요하지 않지만 업데이트 : not-null 속성이 null 또는 일시적인 값 : com을 참조하는 동안 문제가 발생합니다. hibernate.beans.question.initatedBy –

+0

이것은 별개의 문제입니다. 해당 문제는 http://stackoverflow.com/questions/15250751/how-update-one-specific-property-to-database-without-overwrite-to-null-the-rest/15264905#15264905 & http 링크를 참조하십시오. : //www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/ – RAS

0

개체 작업 Hibernate 세션 (첨부 된 객체) 내에서 update를 호출 할 필요가 없다. Hibernate는 변경 사항을 찾습니다.

의사 : (쿼리하기 전에 세척 할 때 또는)

answer = session.CreateQuery("select ...") 
answer.Question.Status = Completed; 
session.Commit(); 

변경 사항 커밋에 데이터베이스로 전송됩니다.

+0

스테판 감사합니다, 나는이 방법을 따르고 있지만 작동하지 않습니다. –

+0

그런 다음 다른 작업을 수행합니다. 나는 그것이 작동하지 않는다는 정보만으로 당신을 도울 수 없습니다. –