java - 将 JPA 信息与 POJO 分离

标签 java maven jpa

我正在开发一个项目,该项目将使用 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/

相关文章:

java - 更改为 Maven 依赖项后,特殊字符变得困惑

java - TomEE Embedded 作为 systemctl 服务停止

spring-boot - 将 WHERE IN 子句添加到 JPA 规范

java - JPA - 找不到类型 : enum 的 validator

java - java中如何将段落的每个句子存储在字符串中?

java - 不幸的是,程序已停止

Maven - 配置始终运行的执行后作业

java - JPA 未收到更新的数据

java - 使用 Android 模拟器进行 USB 主机调试

macos - 在 Mac 上使用 Maven 的 Lombok