温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - How to delete an entity by two attributes in Hibernate?
hibernate java spring-mvc

java - 如何在Hibernate中通过两个属性删除实体?

发布于 2020-03-27 11:35:27

这些天来,我遇到了一个问题,对于其他语言(例如php)来说这很简单,但是我正在做的项目是在Spring MVC中。问题是:在Spring MVC中,如何删除具有来自该实体的两个属性ID的实体

示例:“ 从其中id1 =:id1和id2 =:id2的实体中删除 ”(这是我想要的查询)

感谢您的关注。

我正在尝试...

public boolean remover(int idUsuario, int idCategoria) {

    EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
    EntityManager manager = factory.createEntityManager();


    String hqlStr = "delete from UsuarioEscolheCategoria where idUsuario = :idUsuario and idCategoria = :idCategoria";

    Query query = null; 


    try {

        query = manager.createQuery(hqlStr);

        query.setParameter("idUsuario", idUsuario);
        query.setParameter("idCategoria", idCategoria);

        query.executeUpdate();

        manager.close();
        factory.close();

        return true;

    }catch(Exception e) {
        return false;
    }

}

如果我例外,它将给我:

异常错误

查看更多

查看更多

提问者
Henrique N. Mendes
被浏览
64
83.9k 2019-07-05 13:07
String hqlStr = "delete from UsuarioEscolheCategoria where usuario.idUsuario = :idUsuario and categoria.idCategoria = :idCategoria";

重要的部分是usuario.idUsuariocategoria.idCategoria这样,您就可以引用Usuario模型类上的属性type