dao层中的多个方法

时间:2016-09-01 08:35:08

标签: java hibernate dao

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

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

例如我有user_info表

在dao-layer中有很多方法,比如

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

然后列表继续。

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

我认为像我这样的解决方案只有一个方法getUserInfo(用户用户) 在这个方法中,我将封装查询结构,如

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

我不知道这是正确的解决方案......

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

1 个答案:

答案 0 :(得分:1)

经过激烈的浏览后,我发现了spring-jpa集成here

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

示例示例:

@Repository

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

}

我们也可以按照here

中的说明从DAO方法返回java流

它也有规范支持,类似于hibernate中的条件。