CS

[JPA] jpa 기본 및 간단하게 사용해보기

뱅타 2021. 11. 26. 10:08

JPA 기초와 매핑

@Entity : JPA가 관리할 객체라는것을 알려줍니다(class 위에 선언)

@Id : DB PK와 매핑 할 필드를 지칭합니다(field 위에 선언)

EntityManager

EntityManagerFactory: application 로딩 시점에 딱 하나만 존재해야합니다.

EntityManger: transaction 마다 생성해 주어야 합니다.

persistence.xml

hibernate option 설정

<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>

<property name="hibernate.show_sql" value="true"/>은 아래와 같이 sql을 보여주게 하는 설정입니다.

Hibernate: 
    /* insert hellojpa.User
        */ insert 
        into
            User
            (name, id) 
        values
            (?, ?)

<property name="hibernate.format_sql" value="true"/> 은 가독성을 위해 들여쓰기 및 줄바꿈 등을 해서 보여주게 하는 옵션입니다.

<property name="hibernate.use_sql_comments" value="true"/> 은 아래와 같이 무엇을 실행했는지 주석처리로 알려주는 역할을 하는 옵션입니다.

    /* insert hellojpa.User
        */ insert 

간단한 jpa 사용법(insert, select, update, delete)

em.persist(); // INSERT

em.find(); // SELECT

em.find().set(); // UPDATE

em.remove(); // DELETE

EntityManagerFactory 및 EntityManager 설정

 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // persistense.xml 설정 파일의 name
 EntityManager em = emf.createEntityManager();
 EntityTransaction tx = em.getTransaction();
 ...

insert

          // insert
//            User user = new User();
//            user.setId(2L);
//            user.setName("helloB");
//
//            em.persist(user);

insert의 경우 위와 같이 객체를 선언하고 pk(ID)와 함께 insert할 값을 설정해 주면 됩니다.

select

            // select
//            User findUser = em.find(User.class, 1L);
//            System.out.println("findUser: "+findUser.getId());
//            System.out.println("findUser: "+findUser.getName());

select의 경우 위와 같이 em.find로 해당하는 pk(id = 1L)의 값을 찾습니다.

delete, update

            // delete
//            em.remove(findUser);

            // update
//            findUser.setName("HelloJPA");

delete의 경우 위에서 찾은 객체를 em.remove()를 사용하여 해당 값을 삭제 할 수 있습니다.

update 의 경우 em.find()로 찾은 객체에 ```.set()을 사용하여 UPDATE를 실행 할 수 있습니다.

728x90
반응형

'CS' 카테고리의 다른 글

[jpa] 영속성컨텍스트1  (0) 2021.12.07
# [JPA] JPQL의 기본적 정의와 간단한 사용법  (4) 2021.11.30
[JPA] jpa 프로젝트 생성 시 유의사항  (6) 2021.11.23
[CS] API? Application? 간단정리.  (2) 2021.11.08
[VM] KVM이란?  (5) 2021.10.29