ORM(Object Relational Mapping) : 객체와 관계형 데이터베이스 매핑하는 기술.
JPA (Java Persistence API): 자바 ORM 기술에 대한 API 표준. 즉 인터페이스
-장점: 특정 데이터베이스에 종속되지 않고, 객체지향적 프로그래밍을 가능하게 해주며, 생산성 향상.
-단점:
1.복잡한 쿼리 사용시에는 sql 사용하는게 나을 수 있음. native sql을 통해서 기존 sql 사용할수는 있지만 특정 디비에 종속되는 단점이 생겨서 JPQL을 지원함.
2.성능 저하 위험: 객체간 매핑 설계 잘못했을경우. 자동으로 생성되는 쿼리 많아서.
Hibernate: JPA 인터페이스를 구현한 가장 대표적 오픈소스.
JPA 동작방식
한개의 Entity Manage Factory --create--> 다수의 Entity Manager 인스턴스 --operation--> Entity(Persistence Context)
Entity: DB 테이블에 대응하는 클래스. 클래스에 @Entity 붙여서 사용.
Entity Manager Factory: Entity Manager 인스턴스를 관리. 어플리케이션 실행시 하나만 만들어지고 사용자 요청시 엔티티 매니저를 생성
Entity Manager: 영속성 컨텍스트(엔티티를 영구 저장하는 환경) 접근하여 엔티티에 대한 db 작업 제공.
ㄴ find(), persist(), remove(), flush() 메소드 등...
'개발공부' 카테고리의 다른 글
[트러블슈팅] 실제 데이터 값과 MyBatis를 통해 select 한 값이 다른 문제 - 오라클 char 타입 유의할점 (0) | 2024.11.07 |
---|---|
[트러블슈팅] jsch auth fail (1) | 2024.11.07 |
[백견불여일타] 프로젝트 생성 (0) | 2023.11.12 |
멀티스레드 환경에서의 싱글톤 패턴 (0) | 2023.08.16 |
[트러블슈팅] 오라클 oracle 오류: 수치가 부적합합니다 (0) | 2023.07.29 |