问题描述
我正在将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一起使用,并且其名称为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等。