【问题标题】:Best Practices -- Hibernate persistence code inside the Entity itself?最佳实践——实体本身内部的休眠持久性代码?
【发布时间】:2011-12-22 02:01:44
【问题描述】:
在 Google 的 RequestFactory 教程中,他们建议将我的持久性逻辑(在我的例子中是 Hibernate)放在 Entity 类中。然后他们提出了一个问题:“如果您不想在实体本身中实现持久性代码怎么办?”并继续解释另一种方法。
我的问题:将持久性逻辑放在 Entity 类中,还是将所有持久性逻辑放在单独的类中更好?
感谢任何信息,谢谢。
-tjw
【问题讨论】:
标签:
hibernate
gwt
jpa
requestfactory
【解决方案1】:
将持久性代码放入实体本身是一种Active Record Pattern 方法,而将所有持久性逻辑保留在一个单独的类中是Repository Pattern 方法。您可以使用关键字repository pattern vs activerecord 搜索有关您的问题的更多信息。
例如,活动记录模式在没有数据库的情况下对其可测试性有批评,您可以参考this了解更多信息。
对我来说,我更喜欢存储库模式,因为它是可测试的,而且我不喜欢将持久性代码和领域业务逻辑混合在一个类中,这违反了对关注点分离的强调。