Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @OneTONE映射不保存MySQL。JpaRepository_Java_Mysql_Spring_Hibernate_Hibernate Mapping - Fatal编程技术网

Java @OneTONE映射不保存MySQL。JpaRepository

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 =

我有一对一关系中的两个模型,但当我试图保存它时,会提供一个ID错误

@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
处于打开状态请提供异常的堆栈跟踪