伙计们,我们正在用Java开发游戏服务器。首先是JPA / Spring Data / Hibernate,然后我们放弃了(感谢上帝),我们决定直接使用Hibernate。在这一点上,我可以说,如果需要,我们不会改变数据访问,普通Hibernate和本机查询的技术。
所以我的问题是关于此时正确的数据抽象。有没有任何意义可以使用Repository
模式或为了上帝的缘故,只提供一个抽象的Session
和Transaction
处理提供某种Unit of Work
模式?
Repository
将有太多的实现需要自己的方法Unit of Work
我们公开了hibernate Session
,但提供了灵活性并同时封装了Transaction
管理每种方式的优点和缺点是什么?建议的其他策略? DAO
模式可以作为解决方案,还是最好直接使用Session
?
答案 0 :(得分:1)
我会选择Ayende's advice -
Session
是您的数据库抽象;你不需要abstraction on top of your abstraction。