我发现JPA或类似的东西不鼓励使用DAO模式。我不知道,但是我有这种感觉,尤其是在服务器管理的JTA管理器中。
在使用DAO模式进行了充分的动手之后,我开始围绕该模式设计基于JPA的应用程序。但这并不适合IMO。我倾向于失去JPA的全部功能。
好吧,假设您使用悲观锁定触发查询,并且该查询从DAO方法返回了实体列表。返回时,事务结束并且锁消失了(服务器管理的JTA管理器的情况)。因此,毫无意义的说。但是,有一些有效的情况。
另一个例子更为琐碎。假设您触发查询以获取某个实体,该实体具有与其他实体的一对多关联的延迟加载。返回DAO方法后,交易结束。懒加载不再起作用了,您只是得到了null什么。为了解决这个问题,我们急切地手动加载它。我们做类似的事情a.getBList().size()。
因此,IMO最好不要专门制作DAO,而应在您的业务bean中进行,这样您就可以利用这些有用的功能。或者说,ORM API本身可以被视为DAO /数据层。因此,我们不需要再做一个。
你们对此有何想法?
注意:无论如何,我不说DAO模式已经过时。确实,这取决于具体情况。
暮色呼如
相关分类