运行 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
,并且工作正常。
我正在尝试使用以下任务启动生成 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
,并且工作正常。