运行 exporter #2:hbm2ddl(生成数据库模式)时发生异常

An exception occurred while running exporter #2:hbm2ddl (Generates database schema)

我正在尝试使用以下任务启动生成 dbSchema(eclipse whith maven 项目)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.buildship.core.launch.runconfiguration">
<listAttribute key="arguments"/>
<stringAttribute key="gradle_distribution" value="GRADLE_DISTRIBUTION(WRAPPER)"/>
<listAttribute key="jvm_arguments"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<booleanAttribute key="show_console_view" value="true"/>
<booleanAttribute key="show_execution_view" value="false"/>
<listAttribute key="tasks">
<listEntry value="dbSchema"/>
</listAttribute>
<booleanAttribute key="use_gradle_distribution_from_import" value="false"/>
<stringAttribute key="working_dir" value="${workspace_loc:/MyProject}"/>
</launchConfiguration>

这是来自控制台日志的错误:

[ant:hibernatetool] An exception occurred while running exporter #2:hbm2ddl (Generates database schema)
[ant:hibernatetool] To get the full stack trace run ant with -verbose
[ant:hibernatetool] javax.persistence.PersistenceException: [PersistenceUnit: yadaPersistenceUnit] Unable to build Hibernate SessionFactory
[ant:hibernatetool] java.util.UnknownFormatConversionException: Conversion = '%'

产生这个错误的原因是什么?

[ant:hibernatetool] java.util.UnknownFormatConversionException: Conversion = '%'

如何解决这个问题?是不是实体产生的问题?

到目前为止任务一直运行正常,我没有做任何更改。它可以依赖什么?

这是由设置中的这一行引起的 class:

LOG.debugf("Using BatchFetchStyle : %", sessionFactoryOptions.getBatchFetchStyle().name());

应该是“%s”,而不是“%”:

LOG.debugf("Using BatchFetchStyle : %s", sessionFactoryOptions.getBatchFetchStyle().name());

看起来 this commit 已添加问题。很可能是未检测到问题,因为日志级别未设置为调试。

尝试将其设置为调试:

log4j.logger.org.hibernate.cfg=debug

想添加到 peppe 的回答:有新版本,这个问题已经得到解决。我已经升级到 5.4.9.Final,并且工作正常。