Hibernate HSQLDB两个会话

时间:2015-02-10 04:51:24

标签: hibernate hsqldb

我通过阅读书籍和做例子来学习Hibernate。我正在看

上的例子

http://www.java2s.com/Code/Java/Hibernate/UseTwoSessions.htm网站。

这是一个众所周知的网站,有Java示例。在这个例子中,它使用了我在其自己的JVM中运行的HSQLDB。出于某种原因,当使用第二个会话时,此示例似乎挂起。所以问题是,这个例子有问题吗?你能让一个人看一下并确定它是否是一个有效的例子。

问题出在主类中(参见下面的代码)事件event2 =(Event)session2.load(Event.class,event.getId());这一行挂起

感谢您的帮助。注意:如果此代码不好,请告诉www.java2s.com上的人...如果它确实有效,请告诉我我可能做错了什么..

我正在使用此示例并增加了连接数和许多其他更改。是否有一些变化会使TwoSessions示例有效?

感谢您的帮助 理查德

public static void main(String [] args){    // HibernateUtil.setup(" create table EVENTS(uid int,name VARCHAR,start_Date date,duration int);");

// hibernate code start
    HibernateFactory.buildSessionFactory();
    Session session = HibernateFactory.openSession();
    Session session2 = HibernateFactory.openSession();
    Event event = new Event();
    event.setName("Name");
    session.save(event);
    session.flush();
    Event event2 = (Event) session2.load(Event.class, event.getId());
    System.out.println(event2.getName());
    HibernateUtil.checkData("select uid, name from events");        
// hibernate code end

}

1 个答案:

答案 0 :(得分:0)

代码可能是为具有有限交易功能的HSQLDB 1.8编写的。当前版本希望每个连接在数据库中的自己的线程中运行。使用两个单独的线程。