我需要创建一个可以独立使用或在更大的应用程序中使用的组件。独立使用时,它不需要数据库,也不需要任何数据库/ORM 相关的依赖项。当用作较大应用程序的一部分时,某些类确实会通过 JPA/Hibernate 持久保存到数据库中。
我认为组件中的域对象不会有任何注释(因为要求没有任何 ORM 相关的依赖项)。在更大的应用程序中,我将对这些域对象进行子类化......这大约是我所做的。
通常,我使用字段级注释。是否有可能出现上述情况?我想不是的。
另一个人认为我必须转而注释属性。在这种情况下,我将扩展未注释的域对象,覆盖所有属性,并对它们进行注释。孩子只是一个带有所需注释的委托。这看起来像是很多工作/代码。
讽刺的是,我认为如果我使用 hbm.xml,这会更容易实现,而我们最近已经放弃了 hbm.xml。我是否遗漏了一些带有注释的内容?
JPA 注释实际上是您唯一的依赖项。如果有人以 POJO(非 DB)方式使用您的对象,那么他们所需要的只是 JPA 注释 jar,对于大多数应用程序服务器来说,无论如何,它实际上位于类路径上。
当然,将注释作为依赖项是相当合理的,您不需要拖入整个 hibernate,而且它有很多朋友。
正如您所研究的,另一种方法是对该实体使用 hbm。这并没有那么糟糕,因为 hibernate 非常乐意在单个 SessionFactory 中混合注释和 hbm 样式实体,并且您仍然可以使用字段访问,因此不需要损害类的公共接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)