jpa(10)
-
java: Compilation failed: internal java compiler error
pom.xml에서 org.apache.maven.plugins maven-compiler-plugin 8 8 를 추가해주면 된다. 오류가 발생하는 이유는 maven으로 프로젝트를 열 때 1.5버전이기 때문에 자바 버전이 안 맞기 때문이다. 위의 예시는 필자가 자바 1.8버전을 사용하고 있어 버전을 맞춰준거라고 생각하면 된다.
2023.06.20 -
jpa 엔티티 매핑 정리
jpa에서 엔티티 매핑에 대해서 정리를 해보겠습니다. 객체와 테이블 매핑 @Entity가 붙은 클래스는 jpa가 관리하는 것으로 엔티티라고 합니다. 속성 : name jpa에서 사용할 엔티티 이름을 지정 (기본값 : 클래스 이름 그대로 사용) 데이터베이스 스키마 자동 생성 ddl을 애플리케이션 실행 지점에 자동 생성한다. (테이블 -> 객체 중심) 개발장비에서만 사용(운영에서 사용하면 안돼) 옵션 create : 기존테이블 삭제 후 다시 생성(drop + create) create + drop : create와 같으나 종료시점에 테이블 drop update : 변경분만 반영 (운영db에는 사용하면 안됨) validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 none : 사용하지 않음 개발 초기 ..
2023.06.20 -
jpa 영속성 정리
영속성 컨텍스트 : 엔티티를 영구 저장하는 환경 엔티티의 생명주기 비영속 : 엔티티를 생성후 persist를 하지않은 상태 영속 : 엔티티를 생성 후 persist를 해서 jpa과 엔티티를 관리하고 있는 상태 준영속: 영속 상태에서 detach를 해서 디비에는 값이 저장되어있지만 영속성 컨텍스트 안에는 존재하지 않아 jpa가 엔티티를 관리하지 않는 상태 삭제: 영속 상태인 엔티티를 삭제 영속성 컨텍스트의 이점 1. 1차 캐시 : 1차 캐시의 범위가 같은 트랜잭션 안에서만 발생하므로 크게 속도면에서 향상되지는 않는다. 단지 같은 엔티티를 여러번 조회할 경우 1번만 select문이 발생한다. 2. 동일성 보장 : 같은 트랜잭션 안에서 같은 엔티티를 조회할 경우 == 로 비교시 같다는 것을 통해 동일성이 보장..
2023.06.17 -
jpa 영속성 정리
영속성 컨테스트란? 엔티티를 영구 저장하라는 뜻이다. jpa는 웹 어플리케이션에 요청이 오면 EntityManagerFactory에서 EntityManager를 생성을 한 후 커넥션풀을 활용해 db에 접근하여 데이터를 저장하게 되는 과정이 일어난다. 엔티티의 생명주기 1. 비영속 Member member = new Member(); member.setId(100L); member.setName("Hello"); 객체를 생성만 했을 경우에는 영속 컨텍스트 밖에 위치한다. 이러한 경우를 비영속 상태라고 한다. 2. 영속 Member member = new Member(); member.setId(100L); member.setName("Hello"); em.persist(member); em.persist를..
2023.01.08