Kotlin JPQL SELECT CASE ClassCastException - PullRequest
0 голосов
/ 24 марта 2020

Я использую Spring Data JPA с EclipseLink, работающим на MariaDB.

Я объявил следующий интерфейсный метод в своем хранилище:

@Query("""SELECT CASE WHEN COUNT(tj.id) > 0 THEN true ELSE false END 
    FROM TrackingJob tj
     WHERE tj.id = :id AND tj.parent IS NULL""")
fun isMasterTrackingJob(@Param("id") id: Long): Boolean

При вызове этого из кода я всегда получаю ClassCastException:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
at com.sun.proxy.$Proxy258.isMasterTrackingJob(Unknown Source)
at com.xetics.mes.tracking.service.TrackingJobService.assertIsMasterJob(TrackingJobService.java:578)
at com.xetics.mes.tracking.service.TrackingJobService.findAllTraceabilityInformation(TrackingJobService.java:712)

Мое предположение Было, что Spring может отобразить возвращаемое значение 0 или 1 в логическое значение. Это неправильно? Если я выполню оператор непосредственно на MariaDB, я получу 0 или 1 в результате.

Что я здесь не так делаю?

...