Spring Boot 2.0.0.M2 / Spring Data和findById方法

时间:2017-07-23 09:41:37

标签: spring spring-boot spring-data

我正在尝试将项目移至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)查找实体。请指教。

1 个答案:

答案 0 :(得分:1)

如果实体中存在tagId字段,您可以使用

Tag findByTagId(long tagId);

如果不使用

@Query("select t from Tag t where t.tagId = :tagId")
Tag getByTagId(@Param("tagId") long tagId);