ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JPA] 기초와 매핑
    프로그래밍/Java 2021. 8. 20. 10:40
    반응형

    기초 개념

    @Entitiy: JPA가 관리할 객체

    @Id: DB PK와 매핑할 필드

    @Entity
    public class Member{
    	@Id
        private Long id;
        private String name;
    }
    create table MEMBER

     

     

    데이터베이스 방언 

    jpa는 특정 데이터베이스에 종속적이지 않은 기술

    각각의 데이터베이스가 제공하는 sql 문법과 함수는 조금씩 다르다.

    ex. VARCHAR <-> VARCHAR2, SUBSTRING<->SUBSTR

    방언: sql 표준을 지키지 않거나 특정 데이터베이스만의 고유한 기능

     

    JPA -> DIALECT(인터페이스와 같은 역할)-> MySQLDialect / OracleDialect / H2Dialect 

     

     

    애플리케이션 개발

    - 엔티티 매니저 팩토리는 서버를 켤 때 딱 한번 생성해서 애플리케이션 전체에서 공유

    - 엔티티 매니저는 쓰레드 간에 공유하면 안된다.

    - JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

     

     

    예시 코드

    public class Main {
    	public static void main(String args[]) {
    		// manager는 서버 킬 때 딱 한번 로딩. 그 후 꺼내서 사용한다. 
    		EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // hello에 담긴 설정 정보 가지고 로딩
    		EntityManager em = emf.createEntityManager(); // em 생성
    		EntityTransaction tx = em.getTransaction(); // 트랜잭션 시작
    		tx.begin();
    		try {
    			Member member = new Member();
    			member.setId(100L);
    			member.setName("안녕하세요");
    			em.persist(member); // persist는 영구저장의 의미
    			tx.commit();
    		} catch(Exception e){
    			tx.rollback();
    		} finally {
    			em.close();
    		}
    		emf.close(); // 종료
    	}
    }

     

    반응형

    댓글

Designed by Tistory.