Como excluir um dado do banco de dados a partir de um Jtable?

Olá
Preciso excluir um autor do banco de dados a partir de uma Jtable.
Fiz o seguinte metodo que é chamado no botão Excluir:

private void excluirAutor() { int linha = tbAutor.getSelectedRow(); String question = "Deseja excluir este autor?"; int result = JOptionPane.showConfirmDialog(this, question, "Excluir", JOptionPane.YES_NO_CANCEL_OPTION); if (result == JOptionPane.YES_OPTION) { try { int codigoAutorSelec = Integer.valueOf(txcodigoAutor.getText()); autores = AutorDAO.fabricaAutorDAO().deleteAutor(codigoAutorSelec); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Erro ao excluir! Causa: " + e); } } }

Quando executo dá o seguinte erro:
[color=red]Exception in thread “AWT-EventQueue-0” org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations [DELETE FROM br.com.Dominio.Autor WHERE CodAutor=‘2’][/color]

A próposito, esse metodo deleteAutor fiz lá na classe AutorDAO:

public List<Autor> deleteAutor(int codigoAutor) { String delete = "DELETE FROM Autor WHERE CodAutor='" + codigoAutor + "'"; return getSession().createQuery(delete).list(); }

Porque tá dando este erro?
Agradeço.

Bom, existem coisas que precisam ser esclarecidas.
em primeiro lugar, evite unir as coisas.
Veja bem, a query que você cria é uma query para delete, ela não faz um select (se quiser testar, execute-a direto no banco de dados para ver o resultado).
Logo em seguida você invoca o método list() da interface query do hibernate. Isso gera o erro. O método list() somente terá alguma funcionalidade caso a query obtenha um resultset (no mínimo uma tupla, por exemplo).

Ou seja, o método delete deve ser separado do método de listar.
Aliás, para deletar sequer é preciso utilizar uma query, pode-se invocar o método delete do hibernate, passando, como argumento, o objeto que deseja-se deletar

public void delete(Objetc o) throws Exception{
   //considere que a Session e a Transaction estão definidas e o método pode lançar uma exception
   session.delete(o);
   transaction.commit();
}

Após deletar, invoque o método que retorna a lista de itens que populam a jtable.

entendido?

String sql = "DELETE FROM cad_documento_digitalizados WHERE idCAD_DOCUMENTO_DIGITALIZADOS = " + [b]tabcadprotocolo_arquivosdigitalizados.getValueAt(tabcadprotocolo_arquivosdigitalizados.getSelectedRow(), 0);[/b] con.setRealizarComandoSQL(sql);

bem simples