@Override
public UsersVo login(UsersVo usersVo) {
map.put("userId", usersVo.getUserId());
UsersVo user = usersMapper.findByUserId(map);
if (user == null) {
throw new RuntimeException("유저가없음 아이디");
}
boolean passMatches = passwordEncoder.matches(usersVo.getPassword(), user.getPassword());
if (!passMatches) {
throw new RuntimeException("유저가없음 패스워드");
}
return user;
}
해당 메서드에서
UsersVo 의 userId 값이 들어오지 않는 현상이 있었다
(이거는 String 으로 하면 안 되나? 해서 map으로 바꿨는데도 안 됐던 거...)
<select id="findByUserId" parameterType="Map" resultType="UsersVo">
SELECT *
FROM USERS
WHERE USER_ID = #{userId}
</select>
이게 UsersMapper 의 쿼리인데
쿼리 자체는 문제가 없는 거 같았다
log4j 로 마이바티스 로그를 나오게 해보니
select 는 정상적으로 되는데
userId 만 값이 안 들어오는 것이었다...
오라클 컬럼명은 USER_ID
UsersVo 의 필드명은 userId
혹시 이름 매핑을 못하는 건가? 싶어서
application.properties 의 마이바티스 설정으로 내가 카멜케이스로 이름을 지었다고 명시해주었다
mybatis.configuration.map-underscore-to-camel-case=true
결과는 잘 매핑되었다...허무... :(
중간에 application.properties 파일이 날라가서
전에 썼던 거 급하게 복붙했었는데
몇몇 설정을 빼먹었던 것이 지금 문제가 되고있담..
728x90