Hibernate HQL删除查询

时间:2014-02-28 17:28:27

标签: hibernate hql hql-delete

我正在寻找信息,但我没找到。

我有两张桌子:

  • Remesas
|codigo_prod|  nombre   |codigo_proveedor|
-----------------------------------------
|    1001   | product1  |     EST        |
|    1002   | product2  |     ASM        |

- Proveedores 

|codigo_proveedor|  mail         |
----------------------------------
|    EST        | pro@mail.com  |
|    ASM        | pro2@mail.com |  
|    DAM        | pro3@mail.com |

我必须从Proveedores中删除在Remesas上没有codigo_proveedor的行 在这种情况下,删除它不在Remesas上的DAM。

谢谢!

2 个答案:

答案 0 :(得分:1)

这个怎么样?

    delete Proveedores pr  where pr.codigo_proveedor not in 
                      (select re.codigo_proveedor from Remesas re)

答案 1 :(得分:0)

试试这个:

    Session s= HibernateUtil.getSession();
    s.beginTransaction();
    s.CreateSQLQuery("delete Proveedores where codigo_proveedor not in 
                      (select codigo_proveedor from Remesas)");
    s.getTransaction().commit();

我知道它是为了Java!