无法在Hibernate中创建SessionFactory对象
我收到“错误:无法从数据库获取SequenceInformation” java.sql.SQLException:尝试创建SessionFactory对象时出现“数值溢出”错误。我使用的是Java1.8u74和Hibernate5.4.0版本。我的DB版本是12c 请帮我解决这个问题 下面是我的代码: Student.java hibernate.cfg.xml 记录器:无法在Hibernate中创建SessionFactory对象,hibernate,overflow,numeric,sessionfactory,Hibernate,Overflow,Numeric,Sessionfactory,我收到“错误:无法从数据库获取SequenceInformation” java.sql.SQLException:尝试创建SessionFactory对象时出现“数值溢出”错误。我使用的是Java1.8u74和Hibernate5.4.0版本。我的DB版本是12c 请帮我解决这个问题 下面是我的代码: Student.java hibernate.cfg.xml 记录器: 输入主方法 2020年1月2日9:49:40 PM org.hibernate.Version日志版本 信息:hh000
输入主方法
2020年1月2日9:49:40 PM org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{5.4.0.Final}
2020年1月2日晚上9:49:40 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2020年1月2日晚上9:49:41 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{5.1.0.Final}
2020年1月2日9:49:43 PM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HHH10001002:使用Hibernate内置连接池(不用于生产!)
2020年1月2日9:49:43 PM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HHH10001005:在URL[jdbc:oracle:thin:@hostname:1523:scdevr12]处使用驱动程序[oracle.jdbc.driver.OracleDriver]
2020年1月2日9:49:43 PM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HHH10001001:连接属性:{user=apps,password=**}
2020年1月2日9:49:43 PM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HHH10001003:自动提交模式:错误
2020年1月2日9:49:43 PM org.hibernate.engine.jdbc.connections.internal.driverManager连接ProviderImpl$PooledConnections
信息:HH000115:休眠连接池大小:50(最小值=1)
2020年1月2日9:49:51 PM org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dial.Oracle12cDialect
2020年1月2日晚上9:50:34 org.hibernate.engine.jdbc.env.internal.jdbc environment impl sequenceInformationList
错误:无法从数据库中获取SequenceInformation
java.sql.SQLException:数值溢出
位于oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4136)
位于oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:634)
位于oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:206)
位于oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:259)
位于oracle.jdbc.driver.GeneratedResultSet.getLong(GeneratedResultSet.java:558)
位于org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.ResultSetInvalue(SequenceInformationExtractorLegacyImpl.java:134)
位于org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:60)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentimpl.sequenceInformationList(jdbconvironmentimpl.java:403)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentimpl.(jdbconvironmentimpl.java:268)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:114)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:35)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
位于org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
位于org.hibernate.boot.internal.InFlightMetadataCollectorImpl。(InFlightMetadataCollectorImpl.java:175)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:689)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
位于suman.examples.MainClass.main(MainClass.java:18)
2020年1月2日晚上9:50:40 org.hibernate.type.BasicTypeRegistry注册表
信息:HH000270:类型注册[字节[]]覆盖先前的:org.hibernate.Type。BinaryType@21362712
2020年1月2日晚上9:50:40 org.hibernate.type.BasicTypeRegistry注册表
信息:HH000270:类型注册[[B]覆盖先前的:org.hibernate.Type。BinaryType@21362712
2020年1月2日晚上9:50:41 org.hibernate.type.BasicTypeRegistry注册表
信息:HH000270:类型注册[字节[]]覆盖先前的:org.hibernate.Type。WrapperBinaryType@bc57b40
2020年1月2日晚上9:50:41 org.hibernate.type.BasicTypeRegistry注册表
信息:hh000270:Type注册[[Ljava.lang.Byte;]覆盖先前的:org.hibernate.Type。WrapperBinaryType@bc57b40
2020年1月2日9:50:41 PM org.hibernate.resource.transaction.backend.jdbc.internal.ddTransactionIsolatorNonjtaImpl getIsolatedConnection
信息:HHH10001501:从JdbcConnectionAccess[org.hibernate.engine.jdbc.env.internal]获取的连接。
package suman.examples;
public class Student {
private int ID;
private String NAME;
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getNAME() {
return NAME;
}
public void setNAME(String nAME) {
NAME = nAME;
}
}
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">org.hibernate.dialect.Oracle12cDialect</property>
<property name="connection.url">jdbc:oracle:thin:@hostname:1523:scdevr12</property>
<property name="connection.username">apps</property>
<property name="connection.password">apps</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.pool_size">50</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="student.hbm.xml" />
</session-factory>
</hibernate-configuration>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="suman.examples.Student" table="STUDENT" >
<meta attribute="class-description">This class contains the employee details</meta>
<id name="ID" column="ID" type="int">
<generator class="assigned"></generator>
</id>
<property name="NAME" column="NAME" not-null="true"></property>
</class>
</hibernate-mapping>
package suman.examples;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class MainClass {
static SessionFactory factory;
static Session session;
public static void main(String[] arg) {
// StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
// Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();
System.out.println("Entered main method");
try {
try {
factory = new Configuration().configure().buildSessionFactory();
// factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
// factory = meta.getSessionFactoryBuilder().build();
System.out.println("Factory created");
}catch(Exception e) {
e.printStackTrace();
}
// session = factory.openSession();
// Transaction tx = session.beginTransaction();
// try {
// Employee e = new Employee();
// e.setEmpId(1);
// e.setEmpName("suman");
// System.out.println(session.save(e));
// tx.commit();
// }catch(Exception e) {
// if(tx != null) tx.rollback();
// e.printStackTrace();
// }finally {
// session.close();
// }
}catch(Exception e) {
e.printStackTrace();
}
}
}
Entered main method
Jan 02, 2020 9:49:40 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.4.0.Final}
Jan 02, 2020 9:49:40 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jan 02, 2020 9:49:41 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
Jan 02, 2020 9:49:43 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Jan 02, 2020 9:49:43 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [oracle.jdbc.driver.OracleDriver] at URL [jdbc:oracle:thin:@hostname:1523:scdevr12]
Jan 02, 2020 9:49:43 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=apps, password=****}
Jan 02, 2020 9:49:43 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Jan 02, 2020 9:49:43 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 50 (min=1)
Jan 02, 2020 9:49:51 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle12cDialect
Jan 02, 2020 9:50:34 PM org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl sequenceInformationList
ERROR: Could not fetch the SequenceInformation from the database
java.sql.SQLException: Numeric Overflow
at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4136)
at oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:634)
at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:206)
at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:259)
at oracle.jdbc.driver.GeneratedResultSet.getLong(GeneratedResultSet.java:558)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetMinValue(SequenceInformationExtractorLegacyImpl.java:134)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:60)
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:94)
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:175)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:689)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at suman.examples.MainClass.main(MainClass.java:18)
Jan 02, 2020 9:50:40 PM org.hibernate.type.BasicTypeRegistry register
INFO: HHH000270: Type registration [byte[]] overrides previous : org.hibernate.type.BinaryType@21362712
Jan 02, 2020 9:50:40 PM org.hibernate.type.BasicTypeRegistry register
INFO: HHH000270: Type registration [[B] overrides previous : org.hibernate.type.BinaryType@21362712
Jan 02, 2020 9:50:41 PM org.hibernate.type.BasicTypeRegistry register
INFO: HHH000270: Type registration [Byte[]] overrides previous : org.hibernate.type.WrapperBinaryType@bc57b40
Jan 02, 2020 9:50:41 PM org.hibernate.type.BasicTypeRegistry register
INFO: HHH000270: Type registration [[Ljava.lang.Byte;] overrides previous : org.hibernate.type.WrapperBinaryType@bc57b40
Jan 02, 2020 9:50:41 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@5445f5ba] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
Jan 02, 2020 9:51:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 17026, SQLState: 99999
Jan 02, 2020 9:51:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Numeric Overflow
Jan 02, 2020 9:51:37 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:oracle:thin:@hostname:1523:scdevr12]
org.hibernate.exception.GenericJDBCException: Unable to build DatabaseInformation
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:140)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:96)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:309)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at suman.examples.MainClass.main(MainClass.java:18)
Caused by: java.sql.SQLException: Numeric Overflow
at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4136)
at oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:634)
at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:206)
at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:259)
at oracle.jdbc.driver.GeneratedResultSet.getLong(GeneratedResultSet.java:558)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetMinValue(SequenceInformationExtractorLegacyImpl.java:134)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:60)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:65)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.<init>(DatabaseInformationImpl.java:59)
at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:132)
... 8 more
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems Inc."