【问题标题】:understand a SPRING DATA JPA (dao layer) project了解一个SPRING DATA JPA(dao层)项目
【发布时间】:2015-08-27 00:54:45
【问题描述】:

我想了解一个项目的 DAO 层,它是用 Spring Data JPA 开发的。 我将以实体user 为例。所以我把这个接口命名为
userRepository extends JpaRepository<user, Long>

(User, Long) 有什么用?其次

@Query("select u from user u where u.login = :login")
User findUserByLogin(@Param("login")String login);

我在项目中找不到此接口的实现。我们要直接使用这个接口从数据库中获取数据吗?

【问题讨论】:

标签: java spring jakarta-ee jpa


【解决方案1】:

根据spring data jpa文档:

Spring Data repository 抽象中的中心接口是 存储库。它需要 域类 来管理以及 域类的id type作为类型参数

所以,Utilisateur, Long 表示您的实体是 Utilisateur,Long 是您的主键的类型。 回到您的第二个问题,spring 通过为它们创建代理实例来提供这些接口的默认实现。看看spring data docs

【讨论】:

  • 所以我的理解是:在服务类中,如果我创建了一个属性(例如:UserRepository user;),那么如果我使用一个方法(findUserByLogin),该方法将使用查询,我将得到我想要的数据,但为什么我有注释:@Autowired private UserRepository userDao;
  • @Autowired 将 UserRepository 依赖注入到您的服务 bean 中。认真阅读 Spring 文档,当然还可以了解软件工程中的一些基本最佳实践,例如依赖注入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 2020-04-10
  • 2018-03-18
  • 2019-07-28
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多