在我的应用程序中,我们使用的是Spring Data JPA,因此我们不必手动编写所有基本的CRUD操作 .

但是,现在我们正在添加我们的CUSTOM DAO层,我们将在每个实体中拥有所有CRUD操作,它将委托调用底层的Spring Data JPA .

例如,Entity:User.java DAO:UserDao.java Impl:UserDaoImpl.java

在UserDaoImpl.java中,我们定义了类似的API

  • save(用户)

  • 删除(用户)

  • findUser(id)

上面的apis委托调用Spring Data JPA之类的

public User save(USER user) {
userRepository.save(user);
}

上面工作正常,但我需要为每个实体创建 DaoDaoImpl ,就像我定义Spring Data JPA存储库一样 . 我想避免这个 .

我想实现一些GENERIC DAODAOImpl 之类的

public GenericDaoImpl<T,ID>{
    public User save(T) {
        ${SPRING_DATA_JPA_REPOSITORY}.save(T);
      } 
}

$ 我陷入了困境,在 GenericDaoImpl 中,我希望获得Spring Data JPA的底层某些存储库bean,我可以将其委托给所有CRUD操作 .

任何的想法 ?

我知道, SimpleJpaRepository 执行所有CRUD操作,但我不知道如何在我的 GenericDaoImpl 中使用它 .

请建议 .