2019.05.23 오늘의 구글링

오늘의 구글링

Kotlin + Mybatis : argument mismatch issue

  • 문제점 : kotlin data class로 만든 entity class를 mybatis mapper의 javaType으로 사용하면 argument mismatch가 발생한다.
  • 원인
    • 해당 class의 resultMap이 association을 가지고 있으면 발생한다.
  • 해결
    • data class에 no arguments constructor를 생성하면 해결된다.
    • googling을 해서 찾은 거는 아니고 row 정보로 resultmap constructor를 찾을 때 nested map이 존재하는 경우 no args constructor를 호출하는 부분이 있는 것을 보고 위처럼 해보니 동작함.
    • 시간이 급하여 (no args constructor를 사용하는 이유)[[https://github.com/mybatis/mybatis-3/issues/101]]는 차차 다시 확인해보자
      • 이유는 연속된 nested 객체가 계속 constructor를 사용하게되면 resultmap 객체 생성시 메모리 이슈가 발생한다는 것
    • https://github.com/mybatis/mybatis-3/issues/1382 이것도 참고.