항해99/TIL | WIL

WIL (5주)

태감새 2023. 2. 19. 22:28

ORM은 관계와 객체를 매핑해주는 기술을 의미한다. 

관계형 데이터베이스와 자바의 객체의 매핑을 이용해서 자바로 데이터베이스를 간접적으로 다룬다.  

자바에서는 JPA를 ORM의 기술표준으로 사용하고 있다.  

JPA는 엔티티 매니저를 통해서 데이터의 변화를 저장하고 DB에 반영한다. 

엔티티 매니저에 존재하는 영속성 컨텍스트가 가상의 DB역할을 하면서 변경사항과 DB에서 불러온 값을 저장한다.데이터는 영속성 컨텍스트의 1차 캐시에 저장되고 쿼리는 SQL 저장소에 저장된다. 

그리거 트랜잭션이 커밋되면 변경사항이 DB에 반영된다. 

트랜잭션이 커밋되지 않으면 반영이 안되므로 주의해야 한다. 

JPA을 사용하면 객체로 DB를 관리할 수 있지만 아무래도 동작 방식이 다르다보니 한계가 있다. 

객체로 관리하면 굉장히 복잡하지만 SQL문으로 작성하면 간단히 해결되는 경우가 있다.

자바에서도 객체가 아닌 SQL처럼 쿼리를 전송하는 방법이 있는데 JPQL을 사용하면 된다. 

물론 JPQL도 자바의 언어를 사용하기에 Native SQL이랑 차이점은 존재한다.  

Native SQL은 테이블의 관계를 이용해서 데이터를 다루지만 JPQL은 객체의 관계를 이용한다. 

하지만 직접 쿼리를 작성할 수 있기 때문에 조금 더 유연한 관리가 가능해진다.  

 

'항해99 > TIL | WIL' 카테고리의 다른 글

2023.02.20 (43일)  (0) 2023.02.21
2023.02.19 (42일)  (0) 2023.02.19
2023.02.18 (41일)  (0) 2023.02.19
2023.02.17 (40일)  (2) 2023.02.18
2023.02.16 (39일)  (0) 2023.02.17