JPA

· JPA
QueryDsl를 이용해 무한 페이징을 알아보며 성능 개선 방법 알아보자  들어가며프로젝트 중에 내 정보 페이지에서 사용자가 작성한 데이터를 페이징 처리해야 기능을 맡게 되었으며, 내 정보 페이지에서 사영되는 페이징 방식은 무한 스크롤 방식으로 구현되어야 했기 때문에 무한 스크롤 방식을 구현하는 방법을 알아보도록 하겠습니다. 또한 AWS에서 조회 시 첫 번째 페이지에서 조회하는데도 무척이나 느린 모습을 보였다. 그래서 성능 개선한 방법을 알아보도록 하겠습니다. 페이징 이란?대량의 데이터를 한 페이지에 표시하는 것은 현실적으로 불가능합니다. 키보드와 관련된 10만 건의 데이터를 모두 한꺼번에 화면에 표시하려고 하면, 일반적인 27인치 모니터의 해상도로는 각 데이터를 표시하기에 충분한 공간이 없습니다. 물론..
· JPA
OSIV란 OSIV OSIV(open session in View)는 영속성 컨텍스트를 뷰까지 열어준다는 의미이다. OSIV는 하이버네이트에서 사용하는 용어이고 JPA에서는 OEIV라고 하지만, 관례상 OSIV라고 부른다. OSIV 사용이유 OSIV(Open Session In View)를 사용하면 트랜잭션의 범위가 뷰까지 확장되어 영속 상태가 유지됩니다. 기본적으로 JPA에서는 트랜잭션 내에서 엔티티를 관리하고, 트랜잭션이 종료되면 영속성 컨텍스트가 닫혀 엔티티는 준영속 상태가 됩니다. 그러나 OSIV를 사용하면 트랜잭션을 뷰까지 확장하여 영속성 컨텍스트를 닫지 않고 유지합니다. 이는 컨트롤러나 뷰에서도 영속 상태의 엔티티를 유지하고 조회, 수정할 수 있게 됩니다. 따라서 뷰나 컨트롤러에서도 지연 로딩..
· JPA
JPA 값 타입 이란? 들어가며 값 타입은 기본적으로 3가지로 나눌수있다. 기본값 타입 자바 기본타입( int ,double) 래퍼 클래스(Integer) String 임데디드타입 컬렉션 값 타입 기본값 타입은 기본적으로 자바에서 제공하는 타입이다. 임베디드 타입은 JPA에서 직접 정의한 값 타입이다. 컬렉션 타입은 하나이상 값 타입을 저장할때 사용된다. ※ Lombok을 사용하여 작성함 기본값 타입 기본값 타입은 Entity 클래스를 만들때 기본으로 만들때 사용하는 타입이다. @Entity @Data public class Member { @Id private Long id;// 기본값 타입 private String username;// 기본값 타입 } 임베디드 값 타입 임베디드 값타입은 사용자가 직..
· JPA
프록시와 연관관계 관리 프록시 이런 엔티티가 있다고 해보자 public void printMemberName(String memberId){ Member member = em.find(Member.class, memberId); System.out.println("회원 이름: "+member.getUsername()); } Member에서 username을 가져올때 Team의 객체까지 가지고와서 회원이름이 출력이된다. 이런 방식은 매우 효율적이지 않은 방식이다. 하지만 JPA는 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연시키는 지연 로딩을 제공한다. 그럼 지연 로딩을 사용하려면 실제 엔티티 대신에 가짜 객체가 필요한데 가짜 객체를 프록시 객체라고한다. 프록시 기초 Member member = e..
코드기록사
'JPA' 카테고리의 글 목록