简单的 Jpa 查询不起作用

Simple Jpa query not working

我想删除属于某个用户的最早创建的项目:

这是我试过的:

    em.createQuery("delete from items i where i.user =:user and i.createdOn =(select min(i1.createdOn) from items i1)")
          .setParameter("user", user)
          .executeUpdat();

我也试过了:

    Query query =
            em.createQuery("select i.id from item i where i.user =:user and i.createdOn =(select min(i1.createdOn) from items i1)")
                    .setParameter("user", user);
    Integer item_id = query.getFirstResult();

    em.createQuery("delete from items i where i.id = :id")
            .setParameter("id", item_id)
            .executeUpdate();

以上在第一次查询时似乎总是 return 0,因此不起作用。

如果我对你的模型的理解是正确的,你想删除他首先创建的用户的项目。但是您正在尝试删除由 any 用户首先创建的特定用户的项目。

您需要的查询:

delete from items i 
  where i.user = :user and i.createdOn =
    (select min(i1.createdOn) from items i1 where i1.user = :user)