회원 아이디로 비밀번호와 Refresh Token을 Select 하려고 합니다.
쿼리의 Return type은 MemberEntity로 하려고 하는데 SQL Syntax에 오류가 있다고 해서 질문 드립니다.
쿼리문 코드
FROM myProject.member as m WHERE m.member_id = :memberId", nativeQuery = true)
MemberEntity findByMemberId(@Param("memberId") String memberId);
MemberEntity 구성
@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]