본문 바로가기
오류를 개발새발

MyBatis ) 마이바티스 필드 매핑이 안 되는 현상

by 휴일이 2023. 1. 28.
@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