본문 바로가기

jpa2

JPA 어노테이션 1. NotFound org.hibernate.annotations 에 포함되어 있음 @JoinColumn 등으로 조인을 했을 시, 조인한 테이블의 값이 null 일 경우 EntityNotFoundException 이 발생하는데, 이럴 경우 @JoinColumn("dto_id") @NotFound(action = NotFoundAction.IGNORE) private DTO dto; 을 해주면 Exception 이 발생하지 않음. Ignore, Exception 2개의 값이 있는데 default 는 Exception 인 모양이다. 2. Transient javax.persistence 에 포함되어 있음 Entity 에 변수는 있으나, 컬럼과의 매핑을 원하지 않는 경우 사용 @Transient privat.. 2022. 7. 14.
JPA 락에 대해 트랜잭션에 대해서 이야기 하다보면은 항상 나오는 얘기가 있는 것 같습니다. 대량의 트래픽이 한 번에 들어왔을 때 어떻게 줄을 세울 것인가? 물론 아닐 수도 있지만, 면접때는 거의 항상 비슷한 내용을 물어봤던 것 같습니다 여러 방법이 있을 것 같습니다. DB 의 isolation level 을 조정한다던가 (하지만, 심각하게 느려지므로 비추인 것 같습니다.) JPA 의 낙/비관적 락을 사용한다던가 레디스를 통해 받는다던가 (클러스터를 사용하면 zookeeper 를 사용해야 한다던가 하는데, 자세히는 모르겠네요.) 알아본 혹은 알고 있는 방법으로는 3가지 정도가 있는 것 같습니다. 이번엔 JPA 의 락에 대해서 알아보려고 합니다. 1. 락 없이 동시 접근을 했을 때 동일한 데이터에 접근하여 수정하는 예로는 .. 2022. 7. 14.