从另一个DAO调用一个DAO?
这有道理吗?
假设我需要从数据库中获取一个与另一个对象有关系的对象(由数据库中的外键以及域对象中的组合表示)。如果在我的第一个DAO中,我获取对象1的数据,则调用对象2的dao,最后(从第一个DAO中,调用对象1中的setter,并为其提供先前获取的对象2)。
我知道我可以代替加入连接,但是对我来说,断开功能耦合似乎更合乎逻辑(这就是为什么我对从另一个调用一个dao持怀疑态度)。还是应该将某些逻辑移到服务层?
谢谢
:我认为我已经在答案的帮助下解决了这个问题:我要做的就是将以下内容添加到对象1的映射中:
<one-to-one name="Object2" fetch="join" class="com...Object2"></one-to-one>
我不必更改其他任何内容。谢谢您的帮助!
回答:
在阅读本文时,我只能得出结论,很可能是您做错了。
如果您在ObjectA和ObjectB(可以是OneToOne,OneToMany或ManyToMany)之间设置映射,则Hibernate会自动(延迟)将引用从A加载到B。这将消除查询第二个DAO并在ObjectA中设置ObjectB引用的需要。
更进一步,您甚至可能不需要ObjectB的DAO!
以上是 从另一个DAO调用一个DAO? 的全部内容, 来源链接: utcz.com/qa/402855.html