JPA7 JPA OSIV JPA의 OSIV(Open Session In View) 영속성 컨텍스트를 뷰 렌더링이 완료될 때까지 유지하는 전략입니다. 웹 어플리케이션에서 데이터베이스 트랜젹션을 뷰 렌더링 전까지 열어두는 패턴입니다. ( API 일경우는 클라이언트에게 응답 완료시까지 ) 일반적으로 JPA는 트랜잭션 범위 내에서 영속성 컨텍스트를 유지합니다. 즉, 트랜잭션이 커밋되거나 롤밸될 때 영속성 컨텍스트도 닫힙니다. 그러나 OSIV를 사용하면 트랜잭션이 유지되므로 뷰가 렌더링될 때까지 영속성 컨텍스트를 유지하게 됩니다. 예를 들어 OSIV 사용하면 화면에서 지연로딩을 사용하여 데이터를 렌더링할 수 있습니다. 다만, OSIV를 사용할 때 주의해야 할 점은 장기간의 트랜잭션을 유지하게 되면 데이터베이스 커넥션 리소스가 반환되지 않.. 2024. 1. 31. JPA Auditing JPA(Auditing) 은 JAVA Persistence API의 일부로서, 엔티티의 변경 이력을 추적하고 기록하는 기능을 제공합니다. 이를 통해 데이터베이스의 특정 테이블에 변경 이력을 남길 수 있습니다. 주로 생성일, 수정일, 생성자, 수정자 등의 정보를 추적하는데 사용됩니다. @CreatedDate : 엔티티가 생성될 때 해당 필드에 현재 날짜 및 시간이 자동으로 등록됩니다. @LastModifiedDate : 엔티티가 수정될 때 해당 필드의 현재 날짜 및 시간이 자동으로 갱신 됩니다. @CreatedBy : 엔티티가 생성될 때 해당 필드에 현재 사용자 정보가 자동으로 등록됩니다. @LastModifiedBy : 엔티티가 수정될 때 해당 필드에 현재 사용자 정보가 자동으로 갱신 됩니다. BaseE.. 2024. 1. 30. JPA 연관관계의 주인 JPA(Java Persistence API) 에서 연관관계의 주인 (Owner)이란, 관례를 매핑할 때, 어느 쪽 엔티티가 외래 키를 관리할지를 결정하는 것을 말합니다. 이 개념은 양방향 연관관계에서 특히 중요합니다. 연관관계의 주인이란? 두 엔티티 간의 관계에서 데이터베이스의 외래 키를 관리하는 엔티티를 가르킵니다. JPA에서는 한쪽 엔티티만이 외래 키를 관리해야 하므로, 이느 쪽이 이 역할을 할지 지정해야 합니다. 양방향 관계의서의 중요성 양방향 관계란 두 엔티티가 서로 참조하는 관계이며, 두 엔티티가 모두 외래키를 관리할 수 없기 때문에 어느 한쪽을 주인으로 지정해야 합니다. 이때, 주인의 결정 방법은 주로 외래키가 있는 쪽을 주인으로 정합니다. @JoinColumn 어노테이션이 .. 2023. 12. 3. 이전 1 2 다음