【发布时间】:2013-09-24 01:16:27
【问题描述】:
问题 1:CRUD 在 DAO 中出现,但也出现在 finder 中,对吗? 问题 2:搜索引擎扩展,比如 Hibernate Search,将其功能写入 DAO 是否正常?
【问题讨论】:
-
第二个答案很好。不过,我会为其他人等几天,然后再选择。谢谢你到目前为止的两个答案。
标签: java hibernate crud dao hibernate-search
问题 1:CRUD 在 DAO 中出现,但也出现在 finder 中,对吗? 问题 2:搜索引擎扩展,比如 Hibernate Search,将其功能写入 DAO 是否正常?
【问题讨论】:
标签: java hibernate crud dao hibernate-search
我对两者都同意,因为您的 DAO 是关于特定对象的数据访问,其中包括所有 CRUD 和搜索操作。
【讨论】:
可以,是的——对于这两个问题。要记住的重要一点是,DAO 的目的是从应用程序的其余部分中抽象出持久性方案的细节。很容易,尤其是当您开始进行搜索和更复杂的操作时,开始将耦合引入到您的持久性实现中。例如,如果您通过使用 Hibernate Criteria 作为参数的方法公开搜索,您就会引入与 Hibernate 的耦合。这可能适合也可能不适合您的应用。
另一种策略是为 CRUD 和查询操作使用不同的 DAO,然后将这两者结合到更高层的抽象或服务中。例如,我有时看到它用于具有关系数据库和 Lucene 索引的应用程序。
【讨论】: