Hibernate与HSQLDB的连接 [英] Hibernate connection with HSQLDB

查看:125
本文介绍了Hibernate与HSQLDB的连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

设置我的第一个Hibernate项目时遇到问题。我按照教程操作并在启动代码时卡住了。当我开始与HSQLDB建立连接时,我认为程序会卡住。它不提供任何错误消息。

控制台中的详细输出如下:

I have a problem while setting up my first Hibernate project. I follow the tutorial and get stuck when I launch my code. What happens is that the program get stuck, I believe, when starting the connection with HSQLDB. It does not provide any error message.
The verbose output in the console is the following:

172 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
172 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.10.Final
172 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
187 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
187 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
265 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
265 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
375 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : org/itg/ACLwithHibernate/User.hbm.xml
484 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null

现在配置,我调用buildSessionFactory():

now it is configured, I call buildSessionFactory():

562 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.itg.ACLwithHibernate.User -> USER
577 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
593 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
593 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
593 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 10
593 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
609 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:hsql://localhost:9001
609 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa, password=****}

并且......仅此而已。它永远不会继续我的main()类中的下一个指令。它被卡在某处。
当我调试时,我得到了这个:

and... nothing more. It never goes on to the next instructions in my main() class. It is stuck somewhere. When I debug, I get this:

调试器概述

这是我的hibernate.cfg.xml:

Here is my hibernate.cfg.xml:

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:hsql://localhost:9001</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">10</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="org/itg/ACLwithHibernate/User.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

我的HSQLDB服务器正在运行并输出以下内容:

My HSQLDB server is running and outputed the following:

[Server@3ed5dee4]: [Thread[org.hsqldb.Server.main(),5,org.hsqldb.Server]]: checkRunning(false) entered
[Server@3ed5dee4]: [Thread[org.hsqldb.Server.main(),5,org.hsqldb.Server]]: checkRunning(false) exited
[Server@3ed5dee4]: Startup sequence initiated from main() method
[Server@3ed5dee4]: Loaded properties from [C:\Users\dbr\workspace\test_hibernate\server.properties]
[Server@3ed5dee4]: Initiating startup sequence...
[Server@3ed5dee4]: Server socket opened successfully in 0 ms.
[Server@3ed5dee4]: Database [index=0, id=0, db=file:target/data/tutorial, alias=] opened sucessfully in 630 ms.
[Server@3ed5dee4]: Startup sequence completed in 640 ms.
[Server@3ed5dee4]: 2012-07-18 12:36:53.717 HSQLDB server 2.0.0 is online on port 9001
[Server@3ed5dee4]: To close normally, connect and execute SHUTDOWN SQL
[Server@3ed5dee4]: From command line, use [Ctrl]+[C] to abort abruptly

当server.silent = false时,当我的客户端连接时,我还得到以下内容:

When server.silent = false, I get in addition the following when my client connects:

[Thread[HSQLDB Server @1af5458a,5,org.hsqldb.Server]]: handleConnection(Socket[addr=/127.0.0.1,port=49438,localport=9001]) entered
[Thread[HSQLDB Server @1af5458a,5,org.hsqldb.Server]]: handleConnection() exited
[Thread[HSQLDB Connection @9437a04,5,HSQLDB Connections @1af5458a]]: ODBC client connected.  ODBC Protocol Compatibility Version 0.0

您之前遇到过类似的问题吗?你知道出了什么问题吗?

非常感谢你提前。

Dany

Have you encountered a similar issue before? Do you have an idea about what is going wrong?
Thank you very much in advance.
Dany

推荐答案

当HSQLDB服务器与Hibernate或其他框架一起使用时,必须检查客户端和服务器使用的HSQLDB jar版本,并确保它们都是HSQLDB的相同版本。还需要使用最新版本的HSQLDB。

When an HSQLDB Server is used with Hibernate or other frameworks, it is essential to check the HSQLDB jar version used by the client and server and make sure they are both the same version of HSQLDB. It is also necessary to use an up-to-date version of HSQLDB.

如果使用属性<$ c $启动它,很容易对HSQLDB服务器进行故障排除c> server.silent = false (或 silent = false 作为命令行参数)。这将显示尝试的连接。

It is easy to troubleshoot an HSQLDB Server if you start it with the property server.silent=false (or silent=false as a command line argument). This will show the attempted connections.

在此示例中,服务器显示:

In this example, the server is showing:

[Thread[HSQLDB Connection @9437a04,5,HSQLDB Connections @1af5458a]]: 
      ODBC client connected.  ODBC Protocol Compatibility Version 0.0

表示版本不兼容问题,因为ODBC实际上并未用于Java到HSQLDB连接。

which indicates a version incompatibility problem, as the ODBC is not actually used for Java to HSQLDB connections.

这篇关于Hibernate与HSQLDB的连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆