Когда я пытаюсь сохранить объект U, я получаю следующее исключение:
org.springframework.orm.jpa.JpaSystemException: попытка назначить идентификатор из нулевого свойства «один к одному» [com.roc.domain.A.user]; вложенным исключением является org.hibernate.id.IdentifierGenerationException: попытка присвоить идентификатор из нулевого свойства «один к одному» [com.roc.domain.A.user]
У меня есть две таблицы:
1. пользователь, что столбцы ID (авто incr, основной), имя.
2. свяжитесь с столбцами id, user_id (то есть внешний ключ -> user.id) и адресом.
@Entity
@Table(name = "a")
public class A {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name="address")
private String address;
@OneToOne
@MapsId
private U user;
public A() {
}
// getters and setters
}
@Entity
@Table(name = "u")
public class U {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name="username")
private String userName;
@JoinColumn(name = "user_id", referencedColumnName = "id")
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private A a;
public U(){};
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {
@Autowired
private URepository uRepository;
@Test
public void simpleCrudTest() {
U user = new U("name", new A("address"));
uRepository.save(user);
}
}