我正在开发一个项目,该项目将使用 JPA 将实体持久保存到数据库中。我们将使用 Maven 作为项目管理框架。我想知道是否可以为 POJO 创建一个项目,为持久性定义创建另一个项目,然后将这两个项目“组合”为一个包含 POJO 及其持久性信息的输出。
基本上,我试图将 POJO 的代码与持久性定义分开。因为 POJO 可能被多个不同的项目重用,这些项目可能需要也可能不需要持久化它们,并且可能想要也可能不想更改持久化信息。 (与 Is it possible to build a JPA entity by extending a POJO? 类似但不完全相同)
关于如何做到这一点,我有两个想法。如果我要在 Web 应用程序中使用 POJO,我可以提供 persistence.xml 并映射该项目中的类,然后只需向包含 POJO 的项目添加依赖项。但如果我想创建一个包含持久性信息和 POJO 的单个 jar 文件,我想我可以使用阴影插件?
有没有其他方法可以将两个 Maven 项目本质上合并为一个输出,这是一个合理的事情吗?
最佳答案
如果我没记错的话,如果您不使用注释,则注释不必位于类路径上。带注释的类仍然可以加载。
所以我的建议是:
- 坚持使用 JPA 注释,因为这是定义映射的最简单方法,而且工具支持通常更好。
- 将 JPA 依赖项声明为可选,也可能声明为提供。
- 如果您需要覆盖注释定义的映射,应该可以使用 persistence.xml 来实现,据我所知(从未尝试过)。
关于java - 将 JPA 信息与 POJO 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567548/