0

我正在使用 Dali Java Persistence 工具为具有 300 多个数据库表的现有数据库创建实体。如果我运行该工具,它会转换

  • 数据库 xml 类型到 java 对象
  • 数据库时间戳到java时间戳
  • 数据库整数到 java int

等等。

当我将我的实体放入 Spring 项目时,很多这些数据类型映射(例如上面提到的 3 个)会导致服务器启动错误,并且某些映射会导致 CRUD 操作期间失败。

我有适合我的正确数据类型映射。

我可以看到 Dali 工具为我提供了为每个表设置数据类型映射的选项。

问题是我有超过 300 个表,并且这些相同的映射在所有这些表中重复。

我想更改工具的行为,将数据库 XML 映射到 java String,将数据库整数映射到 java Integer,将数据库时间戳映射到 java java.sql.Date 等。

我不想访问这 300 个表中的每一个,并在数据类型映射中进行相同的更改。

是否可以指定 Dali Java Persistence Tool 的行为以我想要的方式而不是它执行映射的方式来执行映射,而无需访问每个表并单独更改它。

提前致谢。

4

1 回答 1

0

我已经很多年没有尝试过了,但它可能仍然有效:

Dali(Eclipse 中生成 JPA 实体的部分)使用 DTP(Eclipse 的另一部分)来确定特定数据类型的 Java 属性类型。这些映射是特定于数据库平台的,并.xmi在各种 DTP 插件的文件中指定。

例如,在 Eclipse JEE 2021-03 中,对于 PostgreSQL,数据类型ABSTIME映射到 插件 jar java.lang.Object中文件 中的 Java 类型。/runtime/vendors/postgresql/postgresql_8.x.xmi./plugins/org.eclipse.datatools.enablement.postgresql.dbdefinition_1.2.101.201811012051.jar

根据您的数据库平台和您安装的其他插件,这些设置可能会有所不同。您可以提取适当的 .xmi 文件,对其进行编辑,然后将其返回到其 jar 中,这应该会改变实体的生成方式。

于 2021-05-04T02:49:16.413 回答