Order와 UserOrder는 1:1 식별관계다.
MySQL의 Reverse Engineer로 테이블을 보면 1:N이 나와서 당황스러웠다. 🥹
결론은 코드에 문제 없다.
MySQL Reverse Engineer의 문제라고 함,,
orders 테이블
@Entity
@Builder
@AllArgsConstructor
@Table(name = "orders")
public class Order extends BaseTime {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_id")
private Long id;
@OneToOne(mappedBy = "order")
private UserOrder userOrder;
}
user_order
@Entity
@Builder
@AllArgsConstructor
public class UserOrder {
@Id private Long id;
@MapsId
@OneToOne
@JoinColumn(name = "user_order_id", referencedColumnName = "id")
private Order order;
@Column(nullable = false)
private Integer userId;
}
참고 👇👇👇
JPA @OneToOne, 일대일 매핑인데 데이터베이스에 일대다로 뜨는 이유?
혹시 MySQL Workbench를 사용하셨나요?
velog.io
https://stackoverflow.com/questions/62378342/hibernate-create-onetomany-instead-of-onetoone
Hibernate Create OneToMany instead of OneToOne
I don't understand why this code create OneToMany instead of OneToOne Can somebody tell where i made mistake. I have got 2 class: @Entity @Table(name = "user") public class User { @GeneratedVa...
stackoverflow.com
반응형
'ORM > JPA' 카테고리의 다른 글
N+1 문제 (0) | 2022.10.27 |
---|---|
[Error] org.hibernate.LazyInitializationException: could not initialize proxy (0) | 2022.07.20 |
@JoinColumn (0) | 2022.05.19 |
변경 감지(Dirty Checking) (0) | 2022.05.18 |
JPA를 이용한 데이터베이스 초기화 (0) | 2022.03.31 |