ORM/JPA

[JPA] OneToOne

잔망루피 2024. 3. 17. 17:09
반응형

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;
}

 

 

 

 


참고 👇👇👇

https://velog.io/@cheshirehyun/JPA-OneToOne-%EC%9D%BC%EB%8C%80%EC%9D%BC-%EB%A7%A4%ED%95%91%EC%9D%B8%EB%8D%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%97%90-%EC%9D%BC%EB%8C%80%EB%8B%A4%EB%A1%9C-%EB%9C%A8%EB%8A%94-%EC%9D%B4%EC%9C%A0

 

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