По-умолчанию Hibernate не позволяет использовать значения "0" в качестве числовых идентификаторов persistent-объектов, т.к. он трактует объект с идентификаторомв "0" как transistent. Таким образом, при попытке сохранить объект, ссылающийся на persistent-объект с нулевым идентификатором, валится неожиданное исключение:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing ...Чтобы исправить данную ситуацию, нужно в маппинге класса задать ненулевое "unsaved-value" для идентификатора, например, "-1":
<id name="id" type="long" unsaved-value="-1">
<column name="id"/>
<generator class="increment"/>
</id>
Комментариев нет:
Отправить комментарий