朋友们,我们正在用Java开发一个游戏服务器。首先是JPA/Spring Data/Hibernate,然后我们放弃了(感谢上帝),我们决定直接使用Hibernate。在这一点上,我可以说,如果需要的话,我们不会改变数据访问、普通Hibernate和本机查询的技术。
所以我的问题是关于正确的数据抽象。用Repository
模式有什么意义吗?或者看在上帝的份上,放弃一个抽象的只有Session
和Transaction
的处理,提供某种Unit of Work
模式?
- 在
Repository
的情况下,将有太多的实现与自己的方法需要 - 对于
Unit of Work
,我们公开了hibernateSession
,但同时提供了灵活性并封装了Transaction
管理
每种方法的优缺点是什么?还有其他建议吗?DAO
模式是解决方案还是直接使用Session
更好?
我同意Ayende的建议-Session
是您的数据库抽象;你不需要在你的抽象之上再加一个抽象