gpt4 book ai didi

java - 使用内部联接从 JPA 查询中删除

转载 作者:行者123 更新时间:2023-11-30 23:02:40 25 4
gpt4 key购买 nike

在尝试使此 SQL 正确删除 JPA 存储库时,我不断遇到错误。正确的语法是什么?

@Query("delete * from TS t inner join TSC c ON t.tenantId = c.id where t.id= ?1 AND c.endDate < ?2")
void deleteTSWithExpiredDate(Long id, Date date);

Caused by: java.lang.IllegalArgumentException: node to traverse cannot be null!
at org.hibernate.hql.internal.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:63)

另一个

    @Query("delete t.* from TS t inner join TSC c ON t.tenantId = c.id where t.id= ?1 AND c.endDate < ?2")
void deleteTSWithExpiredDate(Long id, Date date);

expecting IDENT, found '*' near line 1, column 10 [delete t.*

另一个

        @Query("delete t from TS t inner join TSC c ON t.tenantId = c.id where t.id= ?1 AND c.endDate < ?2")
void deleteTSWithExpiredDate(Long id, Date date);

unexpected token: from near line 1, column 10 [delete t

最佳答案

批量删除的语法是:

Query q = session.createQuery("delete Entity where id = :idParam");
// set params here
q.executeUpdate();

但是来自 Hibernate documentation , 不能在批量 HQL 查询中指定连接。可以在 where 子句中使用子查询,其中子查询本身可以包含连接。

关于java - 使用内部联接从 JPA 查询中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23280381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com