首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JTable (Swing)中处理Hibernate会话?

如何在JTable (Swing)中处理Hibernate会话?
EN

Stack Overflow用户
提问于 2013-05-05 18:08:16
回答 1查看 385关注 0票数 1

我在整个应用程序中使用了一个会话,但是我得到了错误:

线程"Thread-9“org.hibernate.AssertionFailure中的异常:可能对会话的非线程安全访问

这是偶然发生的,并不总是这样。

在JTable模型中,我有以下内容:

代码语言:javascript
复制
public Object getValueAt(int rowIndex, int columnIndex) {
        Invoice i = invoices.get(rowIndex);
        Object[] values = new Object[] { i.getInvoiceId(), i.getIdent(),
                i.getTotalExclVat(), i.getTotalInclVat(), i.getIssueDate(),
                i.getTaxDate(), i.getDueDate(), i.getPayType(),
                i.getWeight(), i.getSupplier().getName(),
                i.getInvoiceItems().size() };
        return values[columnIndex];
...

发票是Hibernate @Entity和@Table,它有InvoiceItems连接到它。

问题是:如何处理Swing JTables中的Hibernate会话以避免“可能的非线程安全访问会话”错误?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-05 22:52:08

TableModel#getValueAt()正在(或应该是)运行在事件分派线程(EDT)上。正如这里所讨论的,“每个线程/事务都应该从SessionFactory中获得自己的实例。”工厂线程可以通过TableModel更新EDT上的invokeLater()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16387496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档