Я использую Spring Data Neo4j 4.0.0.RC1 и заметил интересное поведение с методом GraphRepository
findOne
.
Учитывая два расширения GraphRepository
:
public interface SimpleNodeRepository extends GraphRepository<SimpleNode> {
}
public interface OtherNodeRepository extends GraphRepository<OtherNode> {
}
Затем, учитывая совершенно чистый лист, скажем, я создаю один SimpleNode
, и ему назначается идентификатор 1L. Когда я вызываю otherNodeRepository.findOne(1L)
, я получаю ClassCastException
вместо нуля. Это наводит меня на мысль, что метод findOne
возвращает SimpleNode
и не учитывает типы узлов SDN.
Это ожидаемое поведение? Я думаю, что это можно обойти, создав метод findById
в соответствующих интерфейсах репозитория, но это, кажется, идет вразрез с интуицией и определенно кажется несовместимым, скажем, с тем, как репозиторий JPA обрабатывает это.