简单的 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)
我想删除属于某个用户的最早创建的项目:
这是我试过的:
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)