加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – hibernate dao设计问题

发布时间:2020-12-15 08:34:49 所属栏目:Java 来源:网络整理
导读:我想在我的休眠应用程序中创建一个通用的DAO来处理CRUD.我的实体拥有大多数关联作为LAZY获取.但我发现为了让hibernate尽可能高效,我必须在我的DAO上创建多个方法.这就是我的意思: 实体A有两个关联.有时我想在不加载关联的情况下检索这个实体,有时候我希望它
我想在我的休眠应用程序中创建一个通用的DAO来处理CRUD.我的实体拥有大多数关联作为LAZY获取.但我发现为了让hibernate尽可能高效,我必须在我的DAO上创建多个方法.这就是我的意思:

实体A有两个关联.有时我想在不加载关联的情况下检索这个实体,有时候我希望它完全填充,所以我在DAO上放了两个方法:

getWhatever()
getWhateverWithLoadedAssociations()

我有两个不同的查询,一个没有连接提取,另一个连接提取.结果是hibernate总是做一次选择,无论它是否为LAZY,因为我知道我想要获得什么.

这样做的问题是,在保存一两个SELECT时,由于方法的数量而增加了复杂性.

这是极端的吗?我应该只有getWhatever(),只是让hibernate在我需要关联数据时再做一次选择,即使我可以保存不执行那个SELECT吗?

我希望这不会太混乱.我试图找出由于延迟加载而导致的SELECTS数量与代码复杂性相比的成本

谢谢

解决方法

恕我直言,我将在通用DAO中添加以下一些方法:

findById(Id id);//lazy load
loadTree(Id id);//load full graph of the entity
load(Id id,String... includePaths);// just load some associations of the entity

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读