这就是我将项目纳入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();
}
我收到此错误
线程中的异常" AWT-EventQueue-0" org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:[model.Kategorija#20]
答案 0 :(得分:0)
尝试代替代码
Kategorija kat = new Kategorija();
kat.setId(id);
sesija.delete(kat);
尝试使用检索对象而不是创建新的Kategorija
Kategorija kat = sesija.get(Kategorija.class, id)
sesija.delete(kat);