본문 바로가기

JPA12

(JPA) JPA 영속성이란? 간단 요약 정리! (영속성 상태 / 기능) JPA 영속성 1. 영속성 컨텍스트 : Entity가 영구적으로 저장되는 환경 (논리적인 개념) 2. Entity Manager : Entity를 영속성 컨텍스트에 등록하거나 삭제 등의 기능을 담당 3. Entity의 상태 - 1. 비영속 : Entity가 영속성 컨텍스트에 등록되어 있지 않음 - 2. 영속 : Entity가 영속성 컨텍스트에 등록되어 있음. (기능을 제공받을 수 있음) - 3. 준영속 : Entity가 영속 상태에서 해제되었음 ( 하지만 영속성 컨텍스트에 식별정보는 남아있다 -> 다시 영속상태로 되돌릴 수 있음) - 4. 삭제 : Entity가 영속성 컨텍스트에서 아예 삭제되었음. 4. 제공받을 수 있는 기능 - 1. 1차 캐싱 지원 : Entity의 조회가 필요한 상황에서 영속성 컨텍.. 2019. 4. 23.
(JPA) JPA란? JPA는 어떻게 구현되어있을까? JPA 란? (Java Persistence API) 자바 어플리케이션에서 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 기본적인 CRUD 기능들이 정의되어있다. EntityManager라는 인터페이스에 메소드를 정의해놓았다. 그렇다면 구현체는? JPA의 구현체는 Hibernate이다. 그말은 JPA를 사용하기위해 반드시 Hibernate를 구현체로 사용할 필요는 없다는 뜻. 하지만 Hibernate가 신뢰할 수 있는 검증된 라이브러리이기 때문에 사용. 2. Hibernate EntityManager와 관련된 클래스를 구현해놓았다. 실제 데이터베이스와 통신하는 코드는 이 코드라는 뜻! 3. Spring Data JPA Repository라는 인터페이스를 제공한다. JPA를 한단계 추상화 시킨것. .. 2019. 4. 15.
(Mybatis/JPA) Mybatis VS JPA 장단점은 무엇일까? 먼저 이 라이브러리들이 나온 이유는 기존 JDBC만의 사용으로 쿼리문을 만들어 요청하는 과정에서쿼리문 생성시 String을 붙히고 자르는 등의 작업이 필요해서 쿼리문이 조금만 길어져도 매우 번거롭고 관리도 힘들었다.따라서 아래의 라이브러리를 사용하여 이런 문제를 해결할 수 있다. 하지만 두 라이브러리는 해결하는 방식이 조금 다른데 그 차이와 장단점이 무엇인지 살펴보자! Mybatis1. 쿼리문을 xml로 분리 가능2. 복잡한 쿼리문 작성 가능 mybatis 장점: 복잡한 쿼리, 다이나믹 쿼리 이점데이터 캐싱기능으로 성능을 향상 시킬 수 있다. mybatis 단점: 비슷한 쿼리 남발. 객체와 쿼리문 모두 관리해주어야 함.자주쓰는 CRUD 메소드를 직접 다 작성해주어야한다. JPACURD 메소드를 기본적으로.. 2019. 2. 27.