Java @OneTONE映射不保存MySQL。JpaRepository
我有一对一关系中的两个模型,但当我试图保存它时,会提供一个ID错误Java @OneTONE映射不保存MySQL。JpaRepository,java,mysql,spring,hibernate,hibernate-mapping,Java,Mysql,Spring,Hibernate,Hibernate Mapping,我有一对一关系中的两个模型,但当我试图保存它时,会提供一个ID错误 @Entity @Table(name = "app_a_table") class A { @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ... @OneToOne(mappedBy =
@Entity
@Table(name = "app_a_table")
class A {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@OneToOne(mappedBy = "a", cascade = CascadeType.ALL)
private B b;
...
// Constructor
// Getter & Setter
}
@Entity
@Table(name = "app_b_table")
class B {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@OneToOne()
@JoinColumn(name = "A_ID", referencedColumnName = "ID")
private A a;
...
// Constructor
// Getter & Setter
}
当我试图像下面这样储蓄时
A newA = new A()
B newB = New B()
newB.setProperties().....
newA.setB(newB);
aRepository.save(newA);
引发的异常列“A_ID”不能为null
如何避免冲突您的映射是双向的,因此您还必须以这种方式进行维护:
A newA = new A()
B newB = New B()
newB.setProperties().....
newA.setB(newB);
// add this:
newB.setA(newA);
aRepository.save(newA);
首先保持
newB
或确保cascade
处于打开状态请提供异常的堆栈跟踪