ограничение типа на экстеншне к
CrudRepository, думал там косяк. https://github.com/spring-projects/spring-data-commons/pull/424
Косяк в том что экстеншн вида <T, ID> CrudRepository<T, ID>.findByIdOrNull(id: ID) принимал туда nullable тип, и если туда попадал null соответственно падал в джавке на <ID> findById(id: ID) { checkNotNull(id) }
Оказалось что косяк проявляется только если наследоваться не напрямую от CrudRepository, а только через PagingAndSortingRepository(JpaRepository), там почему-то по пути теряется понимание что он хочет TypeVariable(ID), и позволяет отдать туда просто ID!
Ревьювер говорит - мол косяк в котлине, проверьте есть ли такая бага в их трекере.
Кто-нибудь в курсе почему так может быть?
Я не уверен, но кажется что там пляски с наследованием класс_в_котлине -> класс_в_джаве -> класс_в_котлине, и в процессе потерялись типы.
Обсуждают сегодня