Java Axon框架表名称与Oracle+;Spring jpa表格自动生成

Java Axon框架表名称与Oracle+;Spring jpa表格自动生成,java,oracle,spring-boot,hibernate,axon,Java,Oracle,Spring Boot,Hibernate,Axon,我将Axon Framework 4.1(不含Axon服务器)与Oracle 12.1和Spring Boot Jpa 2.3.0一起使用 当应用程序启动时,我通过这个属性spring.jpa.hibernate.ddl auto=create使用hibernate来生成我的所有表,包括Axon的表。因此,我得到了以下格式的名称:DOMAIN\u EVENT\u ENTRY,TOKEN\u ENTRY等等。。 之后,当我发送命令时,收到以下错误消息:序列[0]处聚合[2]的事件无法持久化 我想这

我将Axon Framework 4.1(不含Axon服务器)与Oracle 12.1和Spring Boot Jpa 2.3.0一起使用

当应用程序启动时,我通过这个属性
spring.jpa.hibernate.ddl auto=create
使用hibernate来生成我的所有表,包括Axon的表。因此,我得到了以下格式的名称:
DOMAIN\u EVENT\u ENTRY
TOKEN\u ENTRY
等等。。 之后,当我发送命令时,收到以下错误消息:
序列[0]处聚合[2]的事件无法持久化

我想这是因为Axon正在搜索名为:
DOMAINEVENTENTRY
的表,但没有找到它,我收到了错误消息。当我将
DOMAIN\u EVENT\u ENTRY
表重命名为
DOMAINEVENTENTRY
时,一切都开始正常工作

如果我猜对了,这就是问题所在。但另一方面,我将Axon与H2一起使用,它与名称
DOMAIN\u EVENT\u 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等。

Hello polosoft,这似乎是由于命名策略和数据库使用不区分大小写的表名。我们可以检查您的
应用程序.properties
应用程序.yml
吗?用属性更新了问题,感谢您的更新。。。我发现了更多与此相关的东西:“Hibernate的默认命名策略会创建任意长名称,而Oracle的名称限制为30个字符(非常恼人)。”。因此,默认情况下,它可能使用了不同的命名策略。你能试着改变它,看看它是否能工作吗?谢谢,我回答了我自己的问题,但这将是一个很好的功能在furute中支持这一点,并改变错误消息。谢谢,Máté很乐意帮忙,谢谢你的最新答案。