@OneTOOne Mapping не сохраняет MySQL. JpaRepository - PullRequest
0 голосов
/ 01 августа 2020

У меня две модели в отношении «Один к одному», но когда я пытаюсь сохранить, выдает ошибку идентификатора

@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, созданный исключением, не может быть нулевым

Как я могу избежать конфликта

1 Ответ

0 голосов
/ 04 августа 2020

Ваше отображение является двунаправленным, поэтому вы также должны поддерживать его таким образом:

A newA = new A()
B newB = New B()

newB.setProperties().....

newA.setB(newB);
// add this:
newB.setA(newA);

aRepository.save(newA);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...