본문 바로가기

Server/JPA

Kotlin으로 개발 할 때 주의할 점(1) Kotlin으로 JPA를 이용해 개발할 때 주의할 점인자없는 기본생성자JPA의 Entity들은 기본적으로 인자없는 기본생성자가 필요하다. 하지만 코틀린에서 주생성자가 있다면 기본생성자가 없다. 디폴트 파라미터를 통해 기본생성자가 생성되게 할 수 있지만 프로퍼티가 많아지면 모든 Entity에 디폴트 파라미터를 넣기 힘들어진다. 다음과 같이 해결 할 수 있다.dependencies { ... // JPA entity들은 기본적으로 기본생성자가 필..
JPA 영속성 컨텍스트와 Entity 관계설정 기본 JPA 기본EntityManagerFactory & EntityManagerEntityManagerFactory: EntityManager를 만드는 공장Datasource하나당 하나의 EntityManagerFactory를 만들어 사용EntityManagerFactory를 생성하는 작업은 비용이 크기 때문에 싱글톤으로 만들어 사용Thread-safeEntityManagerFactory emf = Persistence.createEntityMa..
Optimistic Lock과 Pessimistic Lock JPA에서의 Isolation With LockJPA는 데이터베이스 트랜잭션 격리 수준을 READ COMMITTED 정도로 가정한다. 일부 로직에 더 높은 격리 수준이 필요하면 낙관적 락과 비관적 중 하나를 사용하면 된다.Optimistic Lock(낙관적 락)버전정보를 이용하여 업데이트를 처리하는 방법버전정보로 사용할 컬럼에 @Version 애너테이션을 부여해야함optimistic locking is based on detecting changes..
JPQL 빌더 클래스 QueryDsl 사용법 QueryDsl이란?JPQL의 빌더(Criteria)클래스QueryDsl 사용전 설정dependency 추가dependencies { compile("com.querydsl:querydsl-core:4.2.1") compile("com.querydsl:querydsl-apt:4.2.1") compile("com.querydsl:querydsl-jpa:4.2.1") compile("com.querydsl:querydsl-collectio..