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 есть много-к-одному

Запрос: На обновление ответа в answer_table конечным пользователем, я хочу, чтобы обновить свой статус: «Complete» в question_table , но когда я запускаю обновление (отвечаю), оно только обновляет огонь в таблице ответов (проверено в журналах), меня путают с ситуацией, так как здесь у меня нет прямой связи между сущностями - статусом и таблицей ответов.

+0

Пока вы говорите о таблицах, а не о объектах, вы не используете фактическую силу ОРМ. –

+0

сказать больше слов о реальной власти, я думал, что я использую классы сущностей и его идеальный orm в использовании ??? –

ответ

1

Вы не сможете обновить status_id в поле «Вопрос», просто сделав update(answer);.

Во-первых, вам нужно извлечь запись из таблицы вопросов, которая связана с ответом. После этого вам нужно запустить запрос обновления на выбранную запись вопроса с помощью нового status_id.

Например,

  1. update(answer);
  2. если answer.question_id = 1, то сделать: select * from question where id = 1
  3. набор статус в вопросе & затем сделать: update(question);
+0

Я думал, что какой-то инверсный или каскадный способ может сделать эту вещь ?? –

+0

пробовал свой путь с обновлением (answer.getQuestion()); который содержит объект quesId и объект сущности объекта и отлично, но initialBy поле объекта вопроса равно null, и это также не требуется в обновлении, но оно вызывает проблему при обновлении: свойство null-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 (прикрепленные объекты) вам не нужно вызывать обновление. Hibernate находит изменения.

псевдокод:

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

Изменения посылаются в базу данных на совершение (или при промывке перед тем запросов).

+0

Спасибо, Стефан, я следую этому пути, но он не работает. –

+0

Тогда вы делаете что-то еще. Я не могу помочь вам только с информацией, что она не работает. –

Смежные вопросы