java - 如何使用 Hibernate 删除数据库中选定的 jTable 行?

标签 java mysql swing hibernate

这就是我将项目放入 jTable 的方式:

    public void fillKategorija(){
        Session sesija = HibernateUtil.getSession();
        Transaction tx = null;
        tx = sesija.beginTransaction();
        List kategorije = sesija.createQuery("from Kategorija").list();
        tx.commit();
        DefaultTableModel tablemodel = (DefaultTableModel)jTable1.getModel();
        for(Iterator iterator = kategorije.iterator();iterator.hasNext();){
            Kategorija kat = (Kategorija)iterator.next();
            tablemodel.addRow(new Object[]{
            kat.getId(),kat.getNaziv(),kat.getOpis()
            });
        }
}

这就是我尝试从数据库中删除选定行的方式:

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int red = jTable1.getSelectedRow();
        DefaultTableModel dtm = (DefaultTableModel)jTable1.getModel(); 
        int id = Integer.parseInt(dtm.getValueAt(red, 0).toString());
        Session sesija = HibernateUtil.getSession();
        Transaction tx = null;
        tx = sesija.beginTransaction();
        Kategorija kat = new Kategorija();
        kat.setId(id);
        sesija.delete(kat);
        tx.commit();
    }     

我得到了这个错误

Exception in thread "AWT-EventQueue-0" org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [model.Kategorija#20]

最佳答案

尝试代替代码

Kategorija kat = new Kategorija();
kat.setId(id);
sesija.delete(kat);

尝试使用检索对象而不是创建新的 Kategorija

Kategorija kat = sesija.get(Kategorija.class, id)
sesija.delete(kat);

关于java - 如何使用 Hibernate 删除数据库中选定的 jTable 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39194287/

相关文章:

java - Spring MVC - 严重 : Exception starting filter Spring OpenEntityManagerInViewFilter

java - 如何将值传递给paintComponent

带有 JTree 和模态对话框的 Java 拖放

java - 如何增加 Astyanax 中的默认最大行数?

MySQL,存储大量记录

mysql - 使用空值作为 future 数据的占位符是一个好习惯吗?

java - J面板: how to add buttons above table?

java - 无法访问使用本地 ip 创建的 cookie

java - Github 覆盖旧项目

java - Repaint() 方法不会重新绘制需要的内容