Здравствуйте, я пытаюсь сохранить одну из моих сущностей "Роль", которая имеет отношение многие-к-одному через таблицу соединения с моей другой сущностью "Пользователь". Однако каждый раз, когда я пытаюсь вставить роль без каких-либо пользователей, я получаю следующую ошибку: org.hibernate.PropertyValueException: свойство not-null ссылается на нулевое или временное значение. Моя сущность Роль сопоставляется с пользователем:
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.DETACH })
@JoinTable(name = "t_UserRoles", joinColumns = {
@JoinColumn(name = "cUserRolesRoleId", referencedColumnName = "cRoleId") }, inverseJoinColumns = {
@JoinColumn(name = "cUserRolesUserId", referencedColumnName = "cUserId") })
private User user;
И мой пользователь с ролью:
@OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.DETACH })
@JoinTable(name = "t_UserRoles", joinColumns = {
@JoinColumn(name = "cUserRolesUserId", referencedColumnName = "cUserId") }, inverseJoinColumns = {
@JoinColumn(name = "cUserRolesRoleId", referencedColumnName = "cRoleId") })
private Set<Role> roles;
код, который выдает исключение:
...
Role newRole = new Role();
newRole.setRoleName(roleName);
roleAfterSave = manager.merge(newRole);
manager.getTransaction().commit();
Цель чтобы иметь возможность сохранить роль без необходимости создания пользовательского экземпляра. Вещи, которые я уже пробовал:
@ ManyToOne (необязательно = true, ...
@ JoinColumn (name = "cUserRolesRoleId", referencedColumnName = "cRoleId", nullable = true)
Скажите, если вам понадобится больше кода! Заранее спасибо за помощь!