dao层的多个方法

multiple methods in dao layer

目前我正计划重构一个用 spring+hibernate 编写的旧代码库。

我在dao层看到了很多解决同样目的的方法,比如。

例如我有 user_info table

dao层有很多方法,比如

 getUserInfoById(String userId);
 getUserInfoByName(String name);
 getUserInfoByIdAndName(String userId,String name) 

这个例子还在继续。

我知道遵循这种做法是非常糟糕的做法。

我认为像我这样的解决方案只有一种方法 getUserInfo(User user) 在此方法中,我将封装查询构造,如

query.with(user.username).with(user.userId) ...

我不知道遵循的解决方案是否正确...

有什么建议吗?任何指向从最基本的东西解释这个概念的页面的链接也很受欢迎。

经过大量浏览,我发现 spring-jpa 集成 here

我唯一创建的是每个实体的接口。 spring 本身处理 DAO 层的创建并处理该实体上的所有操作,还支持批量操作's.we 可以在该接口中添加我们的自定义方法 spring jpa 将实现这些 methods.no 需要编写任何与DAO层相关的代码。

示例:

@存储库

public interface UserRepository extends PagingAndSortingRepository<UserCore, Serializable>, JpaSpecificationExecutor<UserCore>  {

}

我们还可以 return java 从 DAO 方法流式传输,如解释的那样 here

它也有类似于休眠标准的规范支持。