회원 아이디로 비밀번호와 Refresh Token을 Select 하려고 합니다.
쿼리의 Return type은 MemberEntity로 하려고 하는데 SQL Syntax에 오류가 있다고 해서 질문 드립니다.


쿼리문 코드

@Query(value = "SELECT new com.project.myProject.member.domain.entity.MemberEntity(,,m.member_password,,,,,,m.member_refresh_token,)
 FROM myProject.member as m WHERE m.member_id = :memberId
"nativeQuery = true)
MemberEntity findByMemberId(@Param("memberId") String memberId);


MemberEntity 구성

@Getter
@Setter
@Table
(name = "member")
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class MemberEntity {
    @Id
    @GeneratedValue
(strategy = GenerationType.IDENTITY)
    @Column(name = "member_num")
    private Integer memberNum;

    
@Column(name = "member_id")
    private String id;

      
@Column(name = "member_password")
    private String password;

      
@Column(name = "member_name")
    private String name;

    
@Column(name = "member_email")
    private String email;

      
@Column(name = "member_phone")
    private String phone;

      
@Column(name = "member_student_num")
    private String studentNum;

      
@Column(name = "member_type")
    private String type;

    
@Column(name = "member_refresh_token")
    private String refreshToken

      
@Column(name = "member_zip_code")
    private Integer zipCode
}


1. password와 refreshToken만 필드로 가지고 있는 MemberDTO를 생성해서 쿼리문의 Select new 다음 부분을 MemberDTO로 변경
2. MemberEntity에서 @NoArgs와 @AllArgs 대신 @RequiredArgs으로 변경
3. MemberEntity에 password와 refreshToken만 초기화 시키는 생성자 생성 후 쿼리문의 MemberEntity(,,m.member_password,,,,,,m.member_refresh_token,) 부분을 MemberEntity(m.member_password, m.member_refresh_token)으로 변경
등의 시도를 해봤습니다.



오류 내용

2023-11-05T22:55:32.027+09:00 ERROR 58940 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.project.myProject.member.domain.entity.MemberEntity(,,m.member_password,,,,,,m.me' at line 1


org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [SELECT new com.project.myProject.member.domain.entity.MemberEntity(,,m.member_password,,,,,,m.member_refresh_token,) FROM myProject.member as m WHERE m.member_id = ?] [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.project.myProject.member.domain.entity.MemberEntity(,,m.member_password,,,,,,m.me' at line 1] [n/a]; SQL [n/a]