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 具有多对一关系

查询:在最终用户更新 answer_table 中的答案时,我想更新其状态:question_table 中的“完成”,但是当我触发 update(answer) 时,它只会触发答案表上的更新(在日志中验证),我对在这里的情况我没有实体之间的直接关系 - 状态和答案表。

4

2 回答 2

1

您将无法通过执行来更新status_id问题表中的update(answer);.

首先,您需要从 Question 表中获取与答案相关联的记录。之后,您需要使用新的status_id.

例如,

  1. update(answer);
  2. 如果 answer.question_id = 1,则执行:select * from question where id = 1
  3. 设置有问题的状态然后执行:update(question);
于 2013-06-10T12:35:17.500 回答
0

在 Hibernate 会话中使用对象(附加对象)时,您不需要调用 update. Hibernate 发现更改。

伪代码:

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

在提交时(或在查询前刷新时)将更改发送到数据库。

于 2013-06-10T12:44:35.640 回答