【问题标题】:Spring Data JPA: findOne with a unique keySpring Data JPA:具有唯一键的 findOne
【发布时间】:2016-07-22 06:01:46
【问题描述】:

在 Spring Data JPA 中,是否有任何简单的存储库查询返回一个对象,例如 findOne(Integer id),除非使用其他唯一键列的值?

类似findOneByName(String name) ..

还是应该只使用 JPQL 查询?

【问题讨论】:

  • 如果你的列是唯一的,你只会得到一个对象,例如,在你的情况下,如果 name 列是唯一的,那么 findByName 方法将只检索一个对象。
  • @duardito 很酷,谢谢

标签: mysql hibernate jpa spring-data-jpa


【解决方案1】:

在您的存储库中创建对您的方法的查询。

例如

public interface UserRepository extends JpaRepository<User, Long> {

@Query("select u from User u where u.emailAddress = ?1")
User findByEmailAddress(String emailAddress);
}

阅读更多here

【讨论】:

  • 您不需要 @Query 注释,因为 JPA 将通过方法名称找到对象。如果 emailAddress 是唯一的,您可以将方法命名为 findFirstByEmailAddress,JPA 将发挥所有作用。 (至少如果你扩展 org.springframework.data.repository.CrudRepository)
  • @natronite 这不是 JPA,是吗?我认为是 Spring 的某些部分提供了这种“魔力”。
猜你喜欢
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 2018-02-26
  • 2018-08-25
相关资源
最近更新 更多