我尝试使用嵌入式hsqldb运行此示例Hibernate annotation (这是我第一次尝试使用嵌入式数据库)
所以这是我的hibernate conf文件:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">
jdbc:hsqldb:C:\Users\Desktop\testdb</property>
<property name="connection.pool_size">1</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
这是日志文件:
run:
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.annotations.Version <clinit>
Infos: Hibernate Annotations 3.3.1.GA
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: Hibernate 3.2.5
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: hibernate.properties not found
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment buildBytecodeProvider
Infos: Bytecode provider name : cglib
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: using JDK 1.4 java.sql.Timestamp handling
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration configure
Infos: configuring from resource: /hibernate.cfg.xml
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration getConfigurationInputStream
Infos: Configuration resource: /hibernate.cfg.xml
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration doConfigure
Infos: Configured SessionFactory: null
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.AnnotationConfiguration addPackage
Infos: Mapping package model
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationBinder bindPackage
Avertissement: Package not found or wo package-info.java: model
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationBinder bindClass
Infos: Binding entity from annotated class: model.City
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.annotations.EntityBinder bindTable
Infos: Bind entity model.City on table City
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationConfiguration secondPassCompile
Infos: Hibernate Validator not found: ignoring
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
Infos: Using Hibernate built-in connection pool (not for production use!)
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
Infos: Hibernate connection pool size: 1
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
Infos: autocommit mode: false
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
Infos: using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:C:\Users\nbouhlel\Desktop\testdb
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
Infos: connection properties: {}
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Avertissement: Could not obtain connection metadata
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:22 heartbeat - read: -5767 ms.
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at cityproject.HibernateUtil.<clinit>(HibernateUtil.java:16)
at cityproject.CityDAO.saveCity(CityDAO.java:20)
at cityproject.CityProject.main(CityProject.java:21)
Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:22 heartbeat - read: -5767 ms.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.open(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 13 more
sept. 02, 2013 6:55:23 PM org.hibernate.dialect.Dialect <init>
Infos: Using dialect: org.hibernate.dialect.HSQLDialect
sept. 02, 2013 6:55:23 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
Infos: Using default transaction strategy (direct JDBC transactions)
sept. 02, 2013 6:55:23 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
Infos: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Automatic flush during beforeCompletion(): disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Automatic session close at end of transaction: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Scrollable result sets: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: JDBC3 getGeneratedKeys(): disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Connection release mode: auto
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Default batch fetch size: 1
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Generate SQL with comments: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Order SQL updates by primary key: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Order SQL inserts for batching: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
Infos: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
sept. 02, 2013 6:55:23 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
Infos: Using ASTQueryTranslatorFactory
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Query language substitutions: {}
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: JPA-QL strict compliance: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Second-level cache: enabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Query cache: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory createCacheProvider
Infos: Cache provider: org.hibernate.cache.NoCacheProvider
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Optimize cache for minimal puts: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Structured second-level cache entries: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Echoing all SQL to stdout
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Statistics: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Deleted entity synthetic identifier rollback: disabled
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Default entity-mode: pojo
sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
Infos: Named query checking : enabled
sept. 02, 2013 6:55:23 PM org.hibernate.impl.SessionFactoryImpl <init>
Infos: building session factory
sept. 02, 2013 6:55:23 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
Infos: Not binding factory to JNDI, no JNDI name configured
sept. 02, 2013 6:55:23 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
Infos: Running hbm2ddl schema export
sept. 02, 2013 6:55:23 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
Infos: exporting generated schema to database
sept. 02, 2013 6:55:34 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
Grave: schema export unsuccessful
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:33 heartbea t - read: -6635 ms.
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:311)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at cityproject.HibernateUtil.<clinit>(HibernateUtil.java:16)
at cityproject.CityDAO.saveCity(CityDAO.java:20)
at cityproject.CityProject.main(CityProject.java:21)
Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:33 heartbeat - read: -6635 ms.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.open(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 15 more
sept. 02, 2013 6:55:44 PM org.hibernate.util.JDBCExceptionReporter logExceptions
Avertissement: SQL Error: -451, SQLState: S1000
sept. 02, 2013 6:55:44 PM org.hibernate.util.JDBCExceptionReporter logExceptions
Grave: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:43 heartbeat - read: -6979 ms.
Exception in thread "main" java.lang.NullPointerException
at cityproject.CityDAO.saveCity(CityDAO.java:30)
at cityproject.CityProject.main(CityProject.java:21)
Java Result: 1
我使用netbeans IDE
我无法确定问题的确切位置
答案 0 :(得分:1)
如果进程同时运行两次,则会发生这种情况。首先关闭Java进程并删除数据库文件。然后检查重复的过程。