java - Axon Framework 表名称与 Oracle + Spring jpa 表自动生成
问题描述
我正在使用 Axon Framework 4.1(没有 Axon Server)和 Oracle 12.1 和 Spring Boot Jpa 2.3.0
当应用程序启动时,我通过这个属性使用休眠spring.jpa.hibernate.ddl-auto=create
来生成我的所有表,包括 Axon 的表。结果我得到了这种格式的名称DOMAIN_EVENT_ENTRY
,TOKEN_ENTRY
等等。之后,当我发送命令时,我收到以下错误消息:An event for aggregate [2] at sequence [0] could not be persisted
。
我认为这是因为 Axon 使用名称搜索表:DOMAINEVENTENTRY
但没有找到它,我收到了错误消息。当我将DOMAIN_EVENT_ENTRY
表重命名为DOMAINEVENTENTRY
一切开始运作良好时。
如果我猜得很好,这就是问题所在。但另一方面,我将 Axon 与 H2 一起使用,它与 name 一起使用DOMAIN_EVENT_ENTRY
,所以我猜它是 Oracle 特定的问题?
所以我的问题是如何配置 Axon 表名称以生成正确名称的表而不进行黑客攻击。
并认为在这种情况下最好提供更详细的错误消息。为什么我的事件无法持久化。
我的属性与问题相关:
hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl=true
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver.class=oracle.jdbc.driver.OracleDriver
谢了哥们
解决方案
更新
这是答案:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
这将创建这种样式的表:DOMAINEVENTENTRY 等。