Spring 和 Progress-4GL - 更改 JPA 架构命名查询格式
Spring and Progress-4GL - Change JPA schema naming query format
我有一个 Spring 连接到 Progress Open Edge 数据库(不是 postgree)的启动应用程序。
但是我在尝试从 Progress Table 获取数据时遇到了一些问题,当我调用“findAll()”或“findById()”等方法时 returns 出现以下错误:
Table/view/synonynm "EMS2ESP.INTEG_TABLE_003C" cannot be found. (15814) (-210083)
但是,“INTEG_TABLE_003C”确实存在于“EMS2ESP”数据库中。当 运行 直接 select 它工作正常。
我正在 application.properties 中尝试使用以下属性:
spring.datasource.url=jdbc:datadirect:openedge://HOM-DB-01:25475;databaseName=ems2esp
spring.datasource.username=sysprogress
spring.datasource.password=sysprogress
spring.datasource.driver-class-name=com.ddtek.jdbc.openedge.OpenEdgeDriver
spring.datasource.database-platform=org.hibernate.dialect.SQLServerDialect
这是我的实体之一:
@Entity
@Table(name = "INTEG_TABLE_003C")
@Data
public class Progress003c extends IntegTable003c {
// Class properties and etc...
}
我想Spring从生成的查询中删除“EMS2ESP”架构,因为我看到一些在线帖子说这可能会导致上述错误。
我该怎么做?谢谢
我通过执行以下操作设法解决了问题:
在“application.properties”中我放了下面几行
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
在连接字符串中,我在最后添加了“;INITIALIZATIONSTRING=set schema 'PUB'”。现在看起来像这样:
spring.datasource.url=jdbc:datadirect:openedge://HOM-DB-01:25475;databaseName=ems2esp;INITIALIZATIONSTRING=set schema 'PUB'
此外,我必须确保不应定义@Table 注释中的“架构”属性:
@Table(name = "INTEG_TABLE_003C", schema="DO NOT DEFINE SCHEMA")
我有一个 Spring 连接到 Progress Open Edge 数据库(不是 postgree)的启动应用程序。
但是我在尝试从 Progress Table 获取数据时遇到了一些问题,当我调用“findAll()”或“findById()”等方法时 returns 出现以下错误:
Table/view/synonynm "EMS2ESP.INTEG_TABLE_003C" cannot be found. (15814) (-210083)
但是,“INTEG_TABLE_003C”确实存在于“EMS2ESP”数据库中。当 运行 直接 select 它工作正常。
我正在 application.properties 中尝试使用以下属性:
spring.datasource.url=jdbc:datadirect:openedge://HOM-DB-01:25475;databaseName=ems2esp
spring.datasource.username=sysprogress
spring.datasource.password=sysprogress
spring.datasource.driver-class-name=com.ddtek.jdbc.openedge.OpenEdgeDriver
spring.datasource.database-platform=org.hibernate.dialect.SQLServerDialect
这是我的实体之一:
@Entity
@Table(name = "INTEG_TABLE_003C")
@Data
public class Progress003c extends IntegTable003c {
// Class properties and etc...
}
我想Spring从生成的查询中删除“EMS2ESP”架构,因为我看到一些在线帖子说这可能会导致上述错误。
我该怎么做?谢谢
我通过执行以下操作设法解决了问题:
在“application.properties”中我放了下面几行
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
在连接字符串中,我在最后添加了“;INITIALIZATIONSTRING=set schema 'PUB'”。现在看起来像这样:
spring.datasource.url=jdbc:datadirect:openedge://HOM-DB-01:25475;databaseName=ems2esp;INITIALIZATIONSTRING=set schema 'PUB'
此外,我必须确保不应定义@Table 注释中的“架构”属性:
@Table(name = "INTEG_TABLE_003C", schema="DO NOT DEFINE SCHEMA")