본문 바로가기
반응형

JPA/ORM 표준 JPA8

04 Entity Entity class Annotation @Entity 정의 : 테이블과 Entity class를 연결해주는 필수 annotation 1. 속성 name 기능 jpa에서 사용할 Entity이름을 설정 다른 package에서 같은 Entity이름을가지고 있음 하나는 변경 해야함 기본값 class이름 그대로 사용 2. 특징 기본 생성자 필수 접근제어 지시자 최소 단위 : protected private 사용 금지 final class, enum, interface, inner class 사용 불가 저장할 field는 final 사용 금지 @Table 정의 : 엔티티 클래스와 mapping할 table을 지정하는 annotation1. 속성 1. 속성 name 기능 : table이름 기본값 : entity .. 2021. 7. 8.
03. 영속성 EntityManagerFactory 와 EntityManager EntityManagerFactory : EntityManager 객체를 생성하는 클래스 -> 여러 쓰레드가 접속 가능 EntityManagerFactory를 생성할 때 Connection Pool도 같이 생성함 EntityManager : 실제 트랜젝션 이 작용하는 곳에서 DB에 CRUD 연산을 해주는 객체 -> 여러 쓰레드가 공유하면 동시성 문제 발생 EntityManager가 생성되었지만, 실제 물리 DB와 연결할필요가 없으면 Connection Pool을 획득하지 않는다. EntityManager가 생성될 때 영속성 컨택스트를 같이 생성한다.(아래 참고) 영속성 컨택스트(Persistence Context) 정의 : 엔티티 객체를 .. 2021. 6. 30.
02. JPA 요소들 객체 매핑 Table 구조와 객체 mysql table 구조 create table User ( id varchar(255) not null, name varchar(255), age integer, primary key(id) ); JPA Entity class @Getter @Entity @Table(name="users") public class User { @Id private String id; private String name; private Integer age; } JPA Entity Annotation @Entity class를 table과 mapping 한다고 JPA에서 알려주는 기능 @Entity가 붙으면 Entity class라고 부른다 @Table mapping할 DB table.. 2021. 6. 29.
01. JPA 소개 JDBC API의 문제점과 SQL의 문제점 문제점 만약 crud 코드를 작성할 때 Conn -> STMT -> ResultSet 코드 반복이 많다 요구사항 증가로 하나의 filed 값이 추가 -> 모든 sql문 수정이 필요함 -> 아니면 추가된 column에 대해 null 값 저장, 연관 객체는 더 까다로움 -> SQL에 의존적인 개발을 피하기 어렵다 모든 것이 SQL에 의존적 -> Entity 를 신뢰 할 수 없다 -> SQL문을 하나씩 실행해서 결과를 봐야함 -> 계층 분할이 아님 패러다임 불일치 : 객체와 다릴 데이터베이스는 추상화, 상속, 다형성 같은 개념이 없기 때문에 둘의 기능 표현 방법이 다르다. JPA로 문제 해결 sql문을 JPA가 제공하는 interface 사용한다 -> JPA CRUD.. 2021. 5. 19.
반응형