【发布时间】:2013-05-05 18:08:16
【问题描述】:
我在整个应用程序中使用一个会话,但出现错误:
线程“Thread-9”org.hibernate.AssertionFailure 中的异常: 对会话的可能的非线程安全访问
这是偶然发生的,并非总是如此。
在 JTable 模型中我有这个:
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];
...
Invoice 是 Hibernate @Entity 和 @Table,它有 InvoiceItems 连接到它。
问题是:我应该如何处理 Swing JTables 中的 Hibernate Session 以避免“可能的非线程安全访问会话”错误?
谢谢。
【问题讨论】:
-
您没有提供足够的代码,因此我们可以准确地告诉您问题所在。
-
问题是我是否应该在 JTables (getSessionFactory().openSession()) 之间共享一个会话。我应该吗?
标签: java swing hibernate jtable