JPA는 자바 진영의 ORM 기술의 표준으로 (Java Persistence API)의 줄임말이다. 자바 애플리케이션과 JDBC 사이에서 동작한다. ORM이라는 것은 Object-Relational Mapping으로 객체와 관계형 DB를 매핑 한다는 뜻이다. Spr
책에 나와있는 내용은 이클립스로 되어있어서 Intellij로 변환하면서 프로젝트를만들어 보았다.이클립스보다 Intellij가 훨씬 안정적이고 편리하게 사용할 수 있었다.원래는 Gradle을 사용하여 실습을 하려 했지만 책이 Maven으로 되어있어서차이는 없겠지만, Ma
JPA 애플리케이션을 개발하기 위해서는 크게 3부분으로 나누어 개발 할 수 있다.엔티티 매니저 설정트랜잭션 관리비즈니스 로직엔티티 생성 과정은 다음과 같다.JPA를 시작하려면 persistance.xml의 설정 정보를 사용하여 EntityManagerFactory를 생
엔티티 메니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다.=> 엔티티를 관리하는 관리자엔티티 메니저는 개발자 입장에서 엔티티를 저장하는 가상의 DB라고 생각하면 된다.DB를 하니만 사용하는 애플리케이션은 EntityMan
JPA에서 가장 중요한 용어라고 할 수 있다.영속성 컨텍스트라는 용어의 의미 => 엔티티를 영구 저장하는 환경엔티티 매니저로 엔티티를 저정하거나 조회하면, 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.em.persist(엔티티)영속성 콘텍스트는 엔티티
JPA를 사용할 때 쓰기 지연 SQL 저장소에 있는 내용을 DB에 반영하기 위해 사용하는 메서드플러시의 역할은 영속성 컨텍스트의 변경 내용을 데이터베이스와 동기화 하기위해 사용한다.변경 감지가 동작하여 영속성 컨텍스트에 있는 모든 엔티티를 스냅샷과 비교 -> 수정 엔티
영속성 컨텍스트가 관리하는 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태준영속이 되면 영속성 컨텍스트가 제공하는 기능을 사용할 수가 없다.em.detach(엔티티) : 특정 엔티티만 준영속 상태로 전환em.clear() : 영속성 컨텍스트를 완전히 초기화em.c
병합은 준영속 상태나, 비영속 상태를 영속 상태로 변경하기 위해 사용하는 메서드이다.merge() 메서드를 사용하며, 준영속 상태일 경우 해당 엔티티의 정보를 사용하여 새로운 영속 상태의엔티티를 반환받아 사용한다.merge로 병합된 엔티티는 다시 1차 캐시에 들어가 영
JPA을 사용함에 있어서 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것.JPA가 지원하는 대표적인 어노테이션은 크게 4가지가 존재한다.객체와 테이블 매핑 : @Entity, @Table기본 키 매핑 : @Id필드와 컬럼 매핑 : @Column연관관계 매핑 :
2022-07-12 23:11:29.209 ERROR 15908 --- nio-8080-exec-5 o.a.c.c.C.\[.\[./.dispatcherServlet : Servlet.service() for servlet dispatcherServlet in co
@Query를 사용하여 delete 쿼리를 만드는 도중 발생한 문제이다.해당문제는 JPA를 사용하는데 있어서 수정할 수 있는 권한을 지시하는 것이 필요하기 때문에 발생하는 오류이다.일반적으로 delete만 사용하면, 수정하는 지시사항이 없으므로 발생하는 것이다.이것을