我正在尝试将项目移至Spring Boot 2.0.0.M2
现在,Spring Data将Optional
用于findBy *方法,例如:
Optional<T> findById(ID id);
我有一个包含id
属性的Neo4j实体,例如:
@NodeEntity
public class Tag {
private Long id;
}
@Repository
public interface TagRepository extends Neo4jRepository<Tag, Long>
Tag findById(Long tagId);
}
id
是普通属性,而不是实体标识符(PK)。
之前的Spring Boot 2.0我使用了repository.findOne()
嵌入式方法,以便通过它的标识符(PK)和我的自定义repository.findById()
查找实体,以便通过其id
属性查找实体
现在使用Spring Boot 2.0我们没有findOne
而是我们有findById方法通过PK找到实体。现在我不知道如何提供我的自定义repository.findById
方法,我命令能够通过ID属性(而不是PK)查找实体。请指教。
答案 0 :(得分:1)
如果实体中存在tagId
字段,您可以使用
Tag findByTagId(long tagId);
如果不使用
@Query("select t from Tag t where t.tagId = :tagId")
Tag getByTagId(@Param("tagId") long tagId);