Qual seria a vantagem de implementar esse método em hql?
diogoprosoft
E que eu preciso deletar pelo nome não pelo id, eu tenho o id no banco mais no uso no form, ai nao consigo deletar, mais fiquei sabendo que se eu fizer em hql da certo deletar pelo nome
rafaelglauber
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlDelete = "delete Customer c where c.name = :oldName";
// or String hqlDelete = "delete Customer where name = :oldName";
int deletedEntities = s.createQuery( hqlDelete )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();
Acho que é só adaptar para sua realidade, pois como pode ver ele não tá esperando a referência do objeto, mas sim algum atributo dele para localiza-lo no banco de dados.
diogoprosoft
Não teria como eu deixar como eu estava fazendo, porem excluindo pelo nome
Primeiro você quer converter para HQL, eu te passo o material que basta você adaptar que funciona, agora você quer deixar como tá?? Não entendi? Não quer mais usar HQL, beleza…se você quer deletar pelo nome crie um metodo tipo findByName(String name) (onde você pode usar HQL) que localiza seu objeto no banco de dados e tasca delete nele!!!
diogoprosoft
A questão não é de não querer mais, estou vendo as opções que posso ter
Você tem uma classe chamada Object em seu domínio??? Claro que não, até por que essa classe é a MÃE de todas as outras!!! Muito menos deve ter uma tabela com esse nome em seu banco de dados, logo trate de realizar seus CASTs e informe ao Hibernate uma classe válida para ele “tentar” fazer o trabalho dele.
diogoprosoft
E como eu poderia deixar esse metodo hql que vc me passou deixar ele generico
tipo como estava a minha passando um Objeto
nbluis
Faz um load do objeto antes de passa para esse tue método.
von.juliano
Vê isso resolve:
public void removeByName(String name) {
Criteria c = session.createCriteria(SuaEntidade.class);
c.add(Restrictions.eq("nome", name));
Transaction t = session.beginTransaction();
session.delete(c.uniqueResult());
t.commit();
}
Blz? Flw! :thumbup:
diogoprosoft
BLZ, FUNCIONOU muito obrigado julianoe a todos que me ajudaram