@Query 조인 쓰면 Dto에 매핑 안 되는 문제 발생

@SqlResultSetMapping@ConstructorResult 사용

@SqlResultSetMapping@ConstructorResult는 Java Persistence API (JPA)에서 네이티브 쿼리의 결과를 엔터티나 DTO와 매핑하기 위해 사용되는 어노테이션입니다.

  1. @SqlResultSetMapping (SQL 결과 매핑):

    @SqlResultSetMapping(
        name = "MyResultMapping",
        entities = {
            @EntityResult(
                entityClass = MyEntity.class,
                fields = {
                    @FieldResult(name = "id", column = "entity_id"),
                    @FieldResult(name = "name", column = "entity_name")
                }
            )
        }
    )
    
    
  2. @ConstructorResult (생성자 결과):

    @SqlResultSetMapping(
        name = "ApplicationEssayMapping",
        classes = @ConstructorResult(
            targetClass = ApplicationEssayResDto.class,
            columns = {
                @ColumnResult(name = "username", type = String.class),
                @ColumnResult(name = "email", type = String.class),
                @ColumnResult(name = "essay", type = String.class)
            }
        )
    )
    
    

이러한 어노테이션들은 네이티브 쿼리의 결과를 자바 객체에 매핑할 때 유용하게 사용됩니다.