У меня такая ситуация:
Родительская сущность:
@Entity
public class Address {
@OneToOne( optional = false, targetEntity = User.class, fetch = FetchType.LAZY, orphanRemoval = true )
@JoinColumn( name = "id_user", referencedColumnName = "id" )
private User user;
}
Дочерняя сущность:
@Entity
public class User {
@OneToOne( optional = false, targetEntity = Address.class, mappedBy = "user", fetch = FetchType.LAZY, orphanRemoval = true )
private Address address;
}
Как видите, в каскадной операции нетобе стороны.Но когда я сохраняю пользователя:
userRepository.save( new User() );
Выдает это исключение:
org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value : org.company.models.User.address; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value : org.company.models.User.address
.............
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value : org.company.models.User.address
Я хочу сохранить только дочерний элемент, это должно быть возможно, так как @JoinColumn
находится вродитель, поэтому мне не нужно устанавливать его перед сохранением.
Может кто-нибудь прояснить мне эту проблему?Большое спасибо