@Configuration
public class JpaManyToOneUniDirectionConfig {
private EntityManager em;
private EntityTransaction tx;
@Bean
public CommandLineRunner testJpaManyToOneRunner(EntityManagerFactory emFactory) {
this.em = emFactory.createEntityManager();
this.tx = em.getTransaction();
return args -> {
mappingManyToOneUniDirection();
};
}
private void mappingManyToOneUniDirection() {
tx.begin();
// (1)
Member member = new Member("hgd@gmail.com", "Hong Gil Dong",
"010-1111-1111");
// (2)
em.persist(member);
// (3)
Order order = new Order();
// (4)
order.addMember(member);
// (5)
em.persist(order);
tx.commit();
// (6)
Order findOrder = em.find(Order.class, 1L);
// (7) 주문에 해당하는 회원 정보를 가져올 수 있다.
System.out.println("findOrder: " + findOrder.getMember().getMemberId() +
", " + findOrder.getMember().getEmail());
}
}
(1) : 회원 객체를 새로 생성한다.
(2) : 생성한 회원 객체를 영속성 컨텍스트에 저장.
(3) : 신규 주문 객체를 생성.
(4) : 생성해둔 회원 객체를 주문 객체에 추가한다.
public void addMember(Member member) {
this.member = member;
}
(5) : 주문 객체를 영속성 컨텍스트에 저장.
(6) : 저장해둔 주문 엔티티 클래스에서 식별자1을 가진 데이터를 findOrder에 할당한다.
(7) : findOrder.getMember().getMemberId()
=> 엔티티 클래스에서 식별자1을 가진 Data에 포함된 회원객체를 가져와서, 회원 번호를 가져온다.
findOrder.getMember().getEmail()
=> 엔티티 클래스에서 식별자1을 가진 Data에 포함된 회원객체를 가져와서 회원 이메일을 가져온다.
'백엔드 학습 과정 > Section 3 [Spring MVC, JDBC, JPA, RestDo' 카테고리의 다른 글
#6. Spring Data JPA (0) | 2023.01.11 |
---|---|
#5. JPA (0) | 2023.01.01 |
Spring JPA 기능 코드 (0) | 2023.01.01 |
Spring Data JDBC - Service 클래스 기능별 코드 (0) | 2022.12.31 |
#4. Spring Data JDBC (0) | 2022.12.23 |