Dec 13, 2010 15:50
Команда в себе содержит некий entity object который отрисовывается на экране. Entity загружается через Hiberante и содержит в себе другие объекты.
Когда entity загрузилась некоторые вложенные объекты могут быть пустые т.е null
т.е.
Entity Foo:
String name="test"
Date date="13-12-2010"
Bar = null
На странице есть такие поля: Foo.name, Foo.date и Foo.Bar.number
Когда Spring байндит данные, то он чтобы дойти до значения number создаёт объект Bar
После этого, когда я нажимаю сабмит, я пытаюсь сохранить эту команду. Но в команде уже Bar != null и вылетает org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing
В проекте сейчас используется своя реализация DataBinder, которая зануляет такие объекты как Bar и всё нормально работает.
Но такой подходит выглядит как то ненормально.
Собственно вопрос как надо правильно делать? Как сохранить такую команду?
spring,
hibernate