|
|
|
Сохранение связанного объекта после exception: not-null property references to null
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть два класса A и B, вот их упрощенный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вот их NHibernate маппинги: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Связка A с B идет через уникальный внешний ключ. приложение WinForms Столкнулся с такой проблемой, если в форме я не задаю значние NameB то при попытке сохранения объекта A возникает exception: not-null property references to null or transient object . Чего в принципе и следовало ожидать, тк NameB not-null="true" . Далее я правлю NameB - задаю не null значение и повторно выполняю попытку сохранить. В результате опять возникает исключение NHibernate мол должно быть обработано строк 1, а обработалось 0 Вот код сохранения: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Разбирался выяснил, что при первом SaveObj() Хиебрнейт ничего в базу записать реально не успевает, тк при выполении session.Save() возникает исключение (из за NameB), а только получается значения из последовательностей a_id_seq и b_id_seq . Кода NameB задается и второй раз вызываю SaveObj() хибернейт делает INSERT A и затем UPDATE B . Хотя реально B не инсертился еще. Толи это глюк, то ли я что то не понимаю. Похоже что NH считает что B является уже персистентным и следовательно делает update вместо insert. Вопрос в том как можно заставить его все же делать insert B в такой ситуации? Понятно дело сразу можно сделать тупо, не давать сохранять если not-null поля не заполнены. Но все же хотелось бы разобратся с проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 06:43 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35822773&tid=1351942]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 357ms |

| 0 / 0 |
