Я использую 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
в результате.
Что я здесь не так делаю?