본문 바로가기

JPA2

[DB] MyBatis vs JPA 백엔드에서 데이터베이스를 사용하는 프레임워크로 가장 많이 쓰이는 기술이 'Mybatis'와 'JPA'입니다. Java 기반의 Spring 또는 SpringBoot에서 데이터베이스를 사용하려면 두 가지 기술 중 하나를 사용해야 하기 때문에 Java 백엔드 개발자는 'Mybatis'와 'JPA'를 반드시 알고 있어야 합니다. 데이터베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM(Object Relational Mapping) 기술을 제공합니다. SQL Mapper : '개발자가 작성한 SQL 실행 결과를 객체에 매핑'시켜주는 프레임워크 -> MyBatis ORM : 객체와 DB의 데이터를 '자동으로 매핑'시켜주는 프레임워크 -> JPA(Java Persistence Api) 두가지 기.. 2024. 3. 12.
[JPA] 더티 체킹(dirty checking) 정리 JPA의 더티체킹이란 무엇인가요? 더티 체킹이란 영속성 컨테이너가 관리하는 엔티티의 상태를 감지해서, 변경된 부분이 있다면 자동으로 트렌젝션이 끝나는 시점에 데이터베이스 반영하는 기능이다. dirty는 "엔티티 데이터의 변경된 부분"을 뜻하며 dirty checking은 변경된 부분을 감지한다는 의미이다. 따라서 개발자가 update에 관련된 쿼리를 작성하지 않아도 되기 때문에, 코드의 복잡성을 줄일 수 있다는 특징이 있다. 더티체킹의 순서 영속성 컨텍스트는 엔티티를 조회할 때 시작되며, 이후 변경을 감지한다. 준영속/비영속 상태의 엔티티는 더티 체킹의 대상이 되지 못한다. Transaction이 커밋되기 전까지는 영속성 컨텍스트는 변경 사항을 추적하고, DB에 반영하지 않는다. Transaction이 .. 2023. 12. 11.