GWT + 休眠 + HSQLDB

Posted

技术标签:

【中文标题】GWT + 休眠 + HSQLDB【英文标题】:GWT + Hibernate + HSQLDB 【发布时间】:2011-06-28 12:05:36 【问题描述】:

您好,我快速实现了这一点:

http://code.google.com/webtoolkit/articles/using_gwt_with_hibernate.html

我创建了一个简单的登录实现。我创建了一个简单的登录页面和登录按钮来触发服务。

LoginServiceImpl.java 内部:

@Override
public void createAccount(Account user) 
    try 
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.save(user);
        session.getTransaction().commit();
    catch (HibernateException e) 
        e.printStackTrace();
    catch (InvocationException e) 
        e.printStackTrace();

    

但是,我得到了这个控制台输出(截断):

1110 [btpool0-0] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
Hibernate: insert into ACCOUNT (ACCOUNT_ID, name, password) values (null, ?, ?)
Hibernate: call identity(

)

在从 Eclipse 启动 GWT 应用程序之前,我运行以下命令:

java -cp hsqldb.jar org.hsqldb.Server

从 HSQLDB 控制台(调用服务时):

[Server@691f36]: A pre-9.0 client attempted to connect.  We rejected them.

是否有解决办法或者我应该使用不同的数据库?

谢谢。

【问题讨论】:

【参考方案1】:

问题是这样的:当你运行时,你的类路径中有 HSQLDB 2.0.0

java -cp hsqldb.jar org.hsqldb.Server

但在 Eclipse 中,正在使用 HSQLDB 1.8 的副本。当 Eclipse 尝试连接到 HSQLDB 服务器时,它使用这个 1.8 jar,然后服务器抱怨旧版本正在尝试连接。

如果您只是想试验,请使用 HSQLDB 1.8 jar(较小的 jar 约 700 K)来运行服务器。

【讨论】:

【参考方案2】:

你是如何配置 Hibenrate 的。如果您使用 Hibernate.cfg.xml 文件,请确保您已指定正确的方言。即使使用 HSQLDB 也应该可以工作。

【讨论】:

以上是关于GWT + 休眠 + HSQLDB的主要内容,如果未能解决你的问题,请参考以下文章

与 HSQLDB 的休眠连接

GWT - RPC 传输休眠对象问题

hsqldb休眠持久化@Lob

在休眠配置文件中设置 HSQLDB 数据类型?

对 hsqldb 运行休眠时无法解析的日期

休眠和 HSQLDB - 适用于 PC - Linux 上的错误