目前,我计划重构一个用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)
...
我不知道这是正确的解决方案......
有什么建议吗?任何从基本内容解释这个概念的页面的链接也很受欢迎。
答案 0 :(得分:1)
我唯一创建的是每个实体的接口。 spring本身处理DAO层的创建并处理该实体的所有操作,并且还支持批量操作。我们可以在该界面中添加我们的自定义方法spring jpa将实现这些方法。需要编写与DAO层相关的任何代码。
示例示例:
@Repository
public interface UserRepository extends PagingAndSortingRepository<UserCore, Serializable>, JpaSpecificationExecutor<UserCore> {
}
我们也可以按照here
中的说明从DAO方法返回java流它也有规范支持,类似于hibernate中的条件。