【问题标题】:In hibernate how to use not in clause在hibernate中如何使用not in子句
【发布时间】:2011-04-17 16:08:29
【问题描述】:

我有两张桌子

工作和生产

生产表有jobid字段,引用jobs表的jobid。

在hibernate中如何使用not in子句

实现下面的sql查询

SELECT * FROM jobs where job_id not in (select job_id from production);

【问题讨论】:

  • 嗨,我得到了答案,非常简单 Criteria criteria = session.createCriteria(BwJobs.class); DetachedCriteria detachedcriteria = DetachedCriteria.forClass(BwProduction.class); detachedcriteria.setProjection(Property.forName("jobId")); criteria.add(Property.forName("jobId").notIn(detachedcriteria)); // 查询 query = session.createQuery("from BwJobs");工作列表 = 标准列表();

标签: database hibernate jakarta-ee


【解决方案1】:

您可以使用 HQL:

List<Job> jobs = session.createQuery(
        "from Job where id not in (select jobId from Production)"
    ).list();

【讨论】:

    【解决方案2】:

    我认为not exist 关键字是一个不错的选择。

    假设我有一个名为“giraffe”的表,id 作为主键,另一个名为“engineer”的表有一个名为“giraffe”的列,它引用“giraffe”表作为外键,然后是以下 HQL 查询为我工作:

    from Giraffe giraffe where not exists (from Engineer as engineer where engineer.giraffe = giraffe.id )
    

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 2023-04-09
      • 2023-03-20
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多