Utilizar NamedQueries para bulk delete é uma má prática?

1 resposta
javajpahibernate
B

Utilizar namedquery para bulk delete é uma má prática?

por exemplo:

DELETE PESSOA WHERE ID IN ( SELECT c.pessoa.ID FROM PAIS c WHERE c.PAIS = 'BRASIL')

caso seja, por quê?

obs: Sei que JPQL não respeita o mapeamento, por exemplo, se tivermos um cascade no mapeamento, a JPQL não irá respeitar isso, e por exemplo um @PreRemove não irá também ser executado, mas seriam essas razões para não utilizar namedquery para bulk delete?

Obrigado.

1 Resposta

J

Pelo que lembro de namedquery costumava ser algo bagunçado. Ideal seria fazer isso isolado em um repositório:

EntityManager em = getEntityManager();
Query query = em.createNativeQuery("delete...");
//se precisar de parâmetro
//query.setParameter(1, parametro);
query.executeUpdate();
Criado 16 de julho de 2021
Ultima resposta 16 de jul. de 2021
Respostas 1
Participantes 2