(JPA, DB) 테이블 설계 시 주의사항 * JPA를 활용하든 안하든 다대일 단방향 매핑으로 설계 지향 * 수십수백개의 테이블이 얽혀있는 상황에서 최대한 단순하게 테이블 설계를 해야하며, 일대다/다대다 등의 매핑은 객체 관점에서 말이 안되기에 다대일 단방향 매핑 설계를 지향 JPA 2023.01.15
(JPA) 연관관계 매핑 예시 // Member Entity 기준 @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @OneToMany(mappdBy = "member") private List orders = new ArrayList(); // 실제 서비스 시, 회원을 통해 주문 정보를 불러오는 비지니스 로직은 거의 없지만 굳이 연관관계 매핑을 한다면 위와 같이 할 수 있다. // Order Entity 기준 @Id @GeneratedValue @Column(name = "ORDER_ID") private Long id; @ManyToOne @JoinColumn(name = "MEMBER_ID") private Member member; @OneToMany(mappe.. JPA 2023.01.15
(JPA) 테이블 설계 및 주의사항 * 기본적으로 단방향 매핑이 완료되었다는건 테이블 설계가 마무리됐다는 의미 1. 테이블 설계 시, 단방향 매핑을 우선으로 설계(객체 관점에서 양방향 매핑은 고민거리만 많아짐) 2. 1 완료 후 사용 시, 양방향으로 조회하는 작업 등이 필요할 경우, Entity class 파일에 코드 몇줄 추가해서 조회(테이블 설정 변경 필요 없음) JPA 2023.01.15
(JPA) JPA 구동 방식 1. Persistence 설정 정보 조회 2. EntityManagerFactory 생성(WAS 기동 시 하나만 생성해서 어플리케이션 전체에서 공유하며 사용) 3. EntityManager 생성(커넥션풀 같은 개념, 사용하고 반환) * JPA의 모든 데이터 변경은 트랜잭션 안에서 실행 JPA 2023.01.08
(JPA) Spring Boot에 JPA 설정 - persistence.xml JPA 설정 파일 - /META-INF/persistence.xml 생성 * persistence-unit name으로 이름 지정 * javax.persistence로 시작되는 property : JPA 표준 속성 * hibernate로 시작되는 property : Hibernate 전용 속성 persistence.xml 예) http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence JPA 2023.01.08