是否可以将多个 ORM 配置分配给 Java 模型?
Is it possible to assign multiple ORM configurations to a Java Model?
我们有这样的情况:
用 Spring 编写的一个后端。
一个本机 Android 应用程序。
他们共享许多模型。
已经完成的工作是在后端将模型写入一个包中,然后将其导出为 android 中的 jar。
在 android 上,我们使用 OrmLite 与数据库上的这些模型进行交互。模型有其适当的注释来实现这一点。在后端,我们基本上为每个模型编写原始的 crud 查询,这变得很疯狂,因为每次我们添加一个字段,我们都需要更新所有相关查询。
我们想要实现的是在服务器上使用另一个orm。问题是旧的错误设计选择的服务器和 tablet 具有不同的列和 table 名称,即使模型相同。重命名列和 tables 无法完成,因为它涉及太多工作。
我们需要让事情变得更智能,但我们也希望避免复制模型只是为了将模型重新映射到不同的数据库模式。
你有什么聪明的方法来实现这个目标吗?
不幸的是,"Renaming columns and tables cannot be done because it involves too much work" 是长期保持一致和可管理代码库的最佳解决方案。
从短期来看,明智的做法是在服务器上使用 XML 基于配置并坚持为平板电脑应用添加注释。
更新
您要查看JPA specification, it defines the persistence mechanism in java. There are multiple implementation providers for it, here是最新版本规范的提供者列表。
我只有 Hibernate ORM 的经验,它连同其本机 API 也提供了 JPA 的实现。除了注释之外,它还有基于 XML 的配置选项。您将评估哪个供应商适合您的要求。
如果ORMlite 的注释与JPA 不同,那么除了ORMLite 注释之外,您甚至可以在实体类 中使用JPA 注释。但请注意,这会使您的实体模型 类 变得混乱,您将需要在实体模型的类路径上选择 JPA 实现库和 ORMLite 库。
我们有这样的情况: 用 Spring 编写的一个后端。 一个本机 Android 应用程序。
他们共享许多模型。
已经完成的工作是在后端将模型写入一个包中,然后将其导出为 android 中的 jar。
在 android 上,我们使用 OrmLite 与数据库上的这些模型进行交互。模型有其适当的注释来实现这一点。在后端,我们基本上为每个模型编写原始的 crud 查询,这变得很疯狂,因为每次我们添加一个字段,我们都需要更新所有相关查询。
我们想要实现的是在服务器上使用另一个orm。问题是旧的错误设计选择的服务器和 tablet 具有不同的列和 table 名称,即使模型相同。重命名列和 tables 无法完成,因为它涉及太多工作。
我们需要让事情变得更智能,但我们也希望避免复制模型只是为了将模型重新映射到不同的数据库模式。
你有什么聪明的方法来实现这个目标吗?
不幸的是,"Renaming columns and tables cannot be done because it involves too much work" 是长期保持一致和可管理代码库的最佳解决方案。
从短期来看,明智的做法是在服务器上使用 XML 基于配置并坚持为平板电脑应用添加注释。
更新
您要查看JPA specification, it defines the persistence mechanism in java. There are multiple implementation providers for it, here是最新版本规范的提供者列表。
我只有 Hibernate ORM 的经验,它连同其本机 API 也提供了 JPA 的实现。除了注释之外,它还有基于 XML 的配置选项。您将评估哪个供应商适合您的要求。
如果ORMlite 的注释与JPA 不同,那么除了ORMLite 注释之外,您甚至可以在实体类 中使用JPA 注释。但请注意,这会使您的实体模型 类 变得混乱,您将需要在实体模型的类路径上选择 JPA 实现库和 ORMLite 库。