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
它也有类似于休眠标准的规范支持。
目前我正计划重构一个用 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
它也有类似于休眠标准的规范支持。