본문 바로가기
728x90
반응형

Study/JPA16

[QueryDSL] select 절에서 조회 대상 지정 방법 QueryDSL을 이용하여 entity 전체를 가져오는 방법 말고, 조회 대상을 지정하여 원하는 값만 조회하는 것을 프로젝션이라고 합니다. 프로젝션 대상이 하나일 경우에는 반환되는 타입이 프로젝션 대상의 타입입니다. @Test public void oneProjectionTest() { QMember m = QMember.member; query.select(m.name) .from(m) .fetch() .stream() .forEach(name -> log.info("name is : " + name)); } 위의 결과를 보면 Member 엔티티의 name은 String 타입이므로 프로젝션 대상이 하나일 때, List 타입이 조회 결과로 반환되는 것을 볼 수 있습니다. 만약 두 개 이상일 경우에는 어떤.. 2022. 6. 16.
@Embedded, @AttributeOverride 보호되어 있는 글 입니다. 2022. 6. 3.
[JPA] Transactional(readOnley=true) 가 성능 향상이 되는 이유 들어가며 최근에 한 회사에서 주니어 백엔드 면접을 진행했습니다. 여기서 받은 질문이@Transactional(readOnly = true)는 무슨 역할이고 왜 쓰는 거죠??라는 질문을 받았다. 나는 질문의 답변으로 Transactional(readOnly = true)는 읽기 성능 향상을 위해서 사용했다고 단편적인 대답만 하였다. 정확한 개념과 그 원리를 알지 못한다고 스스로 느꼈기 때문에 이를 보완하고자 글을 작성한다. @Transactional 먼저 Transactional 어노테이션을 조금더 정리해보자 해당 어노테이션은 스프링 프레임 워크가 제공하는 트랜잭션 기능과 99% 기능이 동일하며 JPA에 특화되어있다고 보기는 어렵다. 클래스, 인터페이스, 메소드에 사용할 수 있으며, 메서드에 가장 가까운 .. 2022. 5. 31.
[JPA] @AttributeOverride - 매핑 정보 재정의 @AttributeOverride @MappedSuperclass를 통해 상속 받은 경우나 @Embedded를 통해 다른 객체를 필드에 선언한 경우 해당 엔티티에서는 다른 컬럼명을 사용하고 싶을 때가 있다. 이러한 경우에 사용할 수 있는 어노테이션이다. @AttributeOverride 혹은 @AttributeOverrides를 사용할 수 있으며, 사용 방법은 다음과 같다. @MappedSuperclass public class Vehicle { @Id @GeneratedValue private Integer id; private String identifier; private Integer numberOfWheels; // standard getters and setters } @Entity @Attr.. 2022. 5. 25.
728x90
반응형