gpt4 book ai didi

java - 无法获取 SequenceInformation 并且在 ResultSet 中找不到列 start_with

转载 作者:行者123 更新时间:2023-12-01 16:45:33 34 4
gpt4 key购买 nike

在运行一个小型测试程序来检查我的 Hibernate 配置是否正确时,我看到以下错误。我检查了每个表的序列是否具有有效设置——最大值小于 Long 的 MAX_VALUE。我的实体类使用基于注释的配置,并且全部列在我的 cfg.xml 文件中。我能够使用 pgAdmin 在每个表中插入至少一条记录,所以我知道序列正在工作。当程序尝试获取 SessionFactory 时会发生此错误

    public static void main(String[] args) {
try {
// System.err.println(new File(".").getAbsolutePath());
// Configuration configuration = new Configuration();
// Configuration configure = configuration.configure(TypesDaoFt.class.getResource("./hibernate.cfg.xml"));
// sf = configure.buildSessionFactory();

StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure(new File("./hibernate.cfg.xml")).build();
Metadata md = new MetadataSources(ssr).getMetadataBuilder().build();
sf = md.getSessionFactoryBuilder().build();
} catch(Throwable t) {
System.err.println("Failed to build SessionFactory.");
t.printStackTrace();
if(sf != null) {
sf.close();
}
}
}


ERROR: Could not fetch the SequenceInformation from the database
org.postgresql.util.PSQLException: The column name start_with was not found in this ResultSet.
at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2589)
at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2485)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetStartValueSize(SequenceInformationExtractorLegacyImpl.java:129)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:59)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.sequenceInformationList(JdbcEnvironmentImpl.java:403)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.<init>(JdbcEnvironmentImpl.java:268)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:114)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:118)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:473)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:84)
at com.javaduckspizza.ftesters.TypesDaoFt.main(TypesDaoFt.java:30)

最佳答案

您使用了错误的 hibernate 方言。 org.hibernate.dialect.HSQLDialect 方言旨在与 HyperSQL 一起使用。数据库。

org.hibernate.dialect.PostgreSQL10Dialect 方言更适合您的情况。

关于java - 无法获取 SequenceInformation 并且在 ResultSet 中找不到列 start_with,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61785837/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com