Я использую один сеанс через все приложение, но я получаю сообщение об ошибке:Как обрабатывать сеанс Hibernate в JTable (Swing)?
Exception in thread "Thread-9" org.hibernate.AssertionFailure: possible non-threadsafe access to the session
Это происходит случайно, не всегда.
В 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];
...
счет-фактура является Hibernate @Entity и @Table и имеет InvoiceItems подсоединенных к нему.
Вопрос: Как я должен обрабатывать сеанс Hibernate в Swing JTables, чтобы избежать «возможного небезопасного доступа к сеансу»?
Спасибо.
Вы не предоставили достаточно кода, чтобы мы могли точно рассказать вам, в чем проблема. –
Вопрос в том, должен ли я делиться одним сеансом через JTables (getSessionFactory(). OpenSession()) или нет. Нужно ли мне? – Xdg