Я создал UserObject и RoleObject для представления пользователей в моем приложении. Я пытаюсь использовать Hibernate для CRUD вместо сырого JDBC. Я успешно получил информацию из базы данных, но не могу создать новых пользователей. Я получаю следующую ошибку.
org.springframework.web.util.NestedServletException: Request processing failed; nested
exception is org.springframework.dao.DataIntegrityViolationException: could not insert:
[com.dc.data.UserRole]; nested exception is
org.hibernate.exception.ConstraintViolationException: could not insert:
[com.dc.data.UserRole]
Моя база данных определяется следующим образом:
Таблица пользователей, таблица полномочий и таблица полномочий. Таблица полномочий - это объединение пользователей и полномочий.
Мое отображение спящего режима для UserObjec выглядит следующим образом:
...
<set name="roles" table="authorities" cascade="save-update" lazy="false" >
<key column="userId" />
<one-to-many class="com.dc.data.UserRole"/>
<many-to-many class="com.dc.data.UserRole" column="authId" />
</set>
</class>
...
UserRole отображается следующим образом:
<class name="com.dc.data.UserRole" table="authority">
<id name="id" column="authId">
<generator class="native" />
</id>
<property name="roleName">
<column name="authority" length="60" not-null="true" />
</property>
</class>
Как мне нужно изменить отображение или структуру объектов, чтобы иметь возможность сохранять новых пользователей?