spring数据休息更新产生交叉连接sql错误

2023-12-30

我想使用 Spring Data Rest 来更新某些用户的行,但在运行时此查询在查询中添加了奇怪的“交叉联接”。

Spring数据休息方法

 @Modifying
@Transactional
@Query("Update Notification n SET n.noticed = true Where n.notificationPost.owner.userId = 1 ")
public void postNoticed();

运行时创建的查询

Hibernate: update notification cross join  set noticed=true where owner_id=?

我唯一关心的是为什么添加“交叉连接”,因为它会给出 sql 错误

org.postgresql.util.PSQLException: ERROR: syntax error at or near "cross"

我直接通过rest invoke调用这个方法,也从mvc控制器调用这个方法,两种方法都会产生相同的错误

提前致谢。


找到解决方案,如中所述http://forum.spring.io/forum/spring-projects/data/114271-spring-data-jpa-modifying-query-failure http://forum.spring.io/forum/spring-projects/data/114271-spring-data-jpa-modifying-query-failure

“在批量 HQL 查询中不能指定隐式或显式的联接。子查询可以在 where 子句中使用,其中子查询本身可能包含联接。”(Hibernate 文档参考:http://docs.jboss.org/hibernate/core.../#batch-direct http://docs.jboss.org/hibernate/core.../#batch-direct)."

所以我编辑了代码以使用子查询

@Modifying
@Transactional
@Query("Update Notification n SET n.noticed = true Where n.notificationPost.postId in (SELECT n2.notificationPost.postId FROM Notification n2  where n2.notificationPost.owner.userId =:#{#security.principal.user.userId}) ")
public int postNoticed();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring数据休息更新产生交叉连接sql错误 的相关文章

  • spring-data-elasticsearch 在多个索引上搜索

    我的页面上有一个搜索字段 该搜索字段应该搜索多个索引 我可以毫无问题地搜索一个索引 如 spring data elasticsearch 文档中所述 但是 如果我搜索 例如 Foo 我希望得到以下列表作为按相关性排序的结果 title F
  • spring-data-jpa 和 querydsl 的 Maven 构建问题

    我有一个用于 spring data jpa 和 QueryDsl 的 Eclipse Maven 项目 我似乎对 maven apt plugin 有问题 如果我执行 mvn clean 然后执行 mvn install 它会尝试 处理
  • spring boot @controller @transactional 不起作用

    I have Transactional控制器类中的方法如下 主要问题是每个服务调用根据日志在其自己的事务中运行 控制器是否忽略了事务功能 我希望学生记录不会被保存 因为我在使用另一个服务之后抛出异常 但更新仍然发生在数据库中 我什至有 E
  • 重写 Spring Data Rest 请求映射

    我们目前有一个level 2 http martinfowler com articles richardsonMaturityModel htmlRESTful Web 服务 我们正在更新该服务以纳入超媒体支持 我们在后端使用 Sprin
  • 如何将 kotlin 协程与响应式 Spring 数据结合使用

    我正在尝试将一些项目从 Spring Reactor 迁移到 kotlin 协程 我有一些基于 spring webflux 的控制器 如下所示 RestController class Controller val productRepo
  • 创建当前日期的查询匹配[重复]

    这个问题在这里已经有答案了 可能的重复 在 JPA 查询中使用 CURRENT DATE 的示例 https stackoverflow com questions 1637323 example of using current date
  • 使用 spring data jpa 更新单个字段

    我正在使用 spring data 的存储库 非常方便 但我遇到了一个问题 我可以轻松更新整个实体 但我相信当我只需要更新单个字段时这是毫无意义的 Entity Table schema processors name ear attach
  • Spring数据异常处理

    我正在使用 Spring Data JPA 开发一个项目 我需要处理 JpaRepository 方法调用中的一些异常 在下面的代码中 我需要拦截主键违规错误 但无法直接捕获异常 就我而言 当发生此类异常时 存储库层 JpaReposito
  • 如何在同一个项目中连接两个数据库MySQL和MongoDB?是否可以?

    目前我正在使用 Hibernate MySQL 和 Spring 配置对我来说运行良好 但是一旦我配置了另一个配置 mongo config xml 文件并尝试使用 mongodb 运行测试用例 它就显示创建名为 的 bean 时出错从第一
  • Spring data mongodb字段自增

    如何使集合中的字段自动递增 Document public class Product Id private BigInteger id private String name need to be auto inc private int
  • 如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

    有没有人尝试过在 spring boot 中禁用 mongodb 的自动配置 我正在尝试使用 spring data mongodb 来启动 spring boot 使用基于java的配置 使用 spring boot 1 2 1 RELE
  • Spring data Jpa实体不受管理调用刷新时出现异常

    我有一个数据库代码 jar 我在不同的应用程序中使用它来访问数据库 我在用spring data jpa 我需要调用刷新来检查来自其他应用程序的数据库行的更改 这里我如何实现它 我的StudentRepository界面 public in
  • Liquibase 从 JPA 实体生成变更日志

    我有一个 Spring boot spring data jpa 项目 带有一个父模块和三个子模块 我的模块之一负责我的 JPA 实体 我需要使用该实体的 liquibase 生成一个 xml 变更日志 在我的 liquibase prop
  • spring data jpa复合键重复键记录插入导致更新

    我有一个具有复合键的实体 我试图通过使用 spring data jpa 存储库到 mysql 数据库来持久化它 如下所示 Embeddable public class MobileVerificationKey implements S
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • 如何使用 Spring Crud/Jpa Repository 实现 DDD

    我想通过使用 Spring 实现 DDD 来创建一个应用程序 假设我有一个业务实体 Customer 和一个接口 CustomerRepository 由于春天提供了CrudRepository and JpaRepository默认情况下
  • Spring data 和 mongoDB - 继承和@DBRef

    我有这两份文件 用户 Document collection User public class User fields 和联系方式 Document collection Contact public class Contact exte
  • 使用@Transactional(readOnly = true) 有什么优点?

    我是初学者 据我了解 Transactional只需确保类或方法的所有内部工作都用注释 Transactional将被包装在一个事务中 并且来自外部源的所有调用都将创建一个新事务 但是为什么我们实际上需要在下面的存储库中使用这些注释以及使用
  • Spring Data:限制自定义查询的结果

    在我的 Spring 数据存储库中 我 必须 使用自定义查询 Query注解 我知道我可以限制这样的命名查询中的结果数量 Iterable
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository

随机推荐

  • ASP.NET 中的视图状态和控件

    几天前我发布了一个关于视图状态的问题 在运行一些测试后我得出了一些结论 结果 根据这些结果 我对某人将如何做某些事情有一些疑问 以下是我运行的测试结果 如果 usercontrolA 是从加载的OnInit一个页面 那么他的视图状态将在On
  • 在 .NET ASMX Web 服务中获取会话

    我有一个 ASMX Web 服务与我的 ASP NET Web 应用程序一起托管 现在 我需要将用户会话引入 Web 服务 为了测试这一点 我做了这个简单的方法 WebMethod EnableSession true public str
  • Rails 3 中 requirerack/openid 的问题 [native require 正常工作]

    我安装插件 open id authentication 并出现此错误 usr lib ruby gems 1 9 1 gems activesupport 3 0 0 beta lib active support dependencie
  • 如何限制 Haskell 线程的内存使用

    在使用 GHC 编译的 Haskell 程序中 是否可以通过编程方式防止内存使用过多 也就是说 当内存使用量达到指定限制时 让它通知程序 最好指出有问题的线程 例如 假设我想编写一个服务器 托管一个脚本语言解释器 用户可以连接到该服务器 它
  • 使用 Hashids 库对 Laravel eloquent 集合上的 id 进行哈希处理

    我从数据库中获取一组任务作为雄辩的集合 然后将集合发送到我的视图 在那里我执行foreach 这里没有问题 除此之外 我需要参考任务id在我看来 URL 操作等 但我显然不希望在源代码中出现这个 所以我正在使用这个图书馆 https git
  • 如何将值从弹出视图控制器传递到上一个视图控制器?

    所以在我的 1stViewController 中我有这样的代码 IBAction func colorDropdown sender Any self popUpColorPicker func popUpColorPicker let
  • Java:静态最终字段按什么顺序初始化?

    好吧 假设我有一堂课 如下所示 public class SignupServlet extends HttpServlet private static final Logger SERVLET LOGGER COMPANYLog ope
  • Vue.js 组件 prop 没有 2 路绑定?

    I found 这个问题是类似的 https stackoverflow com questions 44790842 vuejs right way to edit prop without changing parent data 但它
  • 为什么静态类在 Java 中是非法的?

    我正在开发一个 Android 应用程序 但遇到了一些困难 我不断收到错误 Illegal modifier for the class FavsPopupFragment only public abstract final are pe
  • 获取生成器的子集

    我有一个生成器函数 想从中获取前十项 我的第一次尝试是 my generator 10 正如错误告诉我的那样 这不起作用 因为生成器不可订阅 现在我已经解决了这个问题 list my generator 10 这是有效的 因为它将生成器转换
  • AWS ALB + Django + Gunicorn +- Nginx?

    我正在 AWS 中构建一个环境来托管 django 应用程序 我试图弄清楚是否应该使用 nginx 作为构建的一部分 我在下面列出了一些不同的环境 以供示例 比较之用 所有环境都使用 AWS ALB ENV 1 ALB gt dockerc
  • nptl SIGCONT 和线程调度

    我正在尝试移植依赖于 SIGCONT 的代码来停止应用程序的某些线程 对于当前的 linux nptl 实现 似乎不能依赖 2 6 x 内核中的实现 我正在尝试设计一种方法来停止其他线程 目前我只能考虑互斥体和条件变量 任何提示表示赞赏 如
  • PHP 中JavaScript 的decodeURIComponent 的等价物是什么?

    我有一个包含 unicode 字符的字符串 我正在通过 HTTP 传输该字符串 该字符串是用 Javascript 编码的encodeURIcomponent php 中是否有与 Javascript 等效的函数decodeURICompo
  • Google Play 说我使用 Android Studio Build->Generate Signed APK 构建的 APK 是可调试的

    我收到消息 您上传了可调试的 APK 出于安全原因 您需要先禁用调试 然后才能在 Google Play 中发布 了解有关可调试 APK 的更多信息 我使用 Android Studio 生成 APK 构建 gt 生成签名 APK 我创建了
  • Tmux:失去焦点时自动隐藏面板

    我最近开始使用 tmux 进行 Vim 编辑 在 PyCharm 中 我曾经在底部有一个终端 我可以通过几次按键来切换屏幕 我希望 tmux 具有相同的功能 在 Vim 中全屏编辑代码 然后当我需要运行命令时 直接转到屏幕底部的终端窗格 然
  • 我的服务器可以同时运行多少个 php 脚本?

    我有一个最终用户可以访问的脚本 该脚本可以进行以下调用 exec php orderWatcher php insertedId gt dev null 在 orderWatcher php 中我做了一些需要很长时间的操作 if check
  • 如何通过命令行向sql脚本传递参数

    有一个要求 我试图自动化项目中的一个流程 其中需要运行 sql 来进行日常报告 sql 如下所示 这是最简单的形式 但我的 sql 有 400 行 下面只是获取结果的示例 test sql select from table where c
  • .query 字符串中的美元符号 ('$') 是什么意思?

    什么是 该声明中的符号含义 SQL Query gt Update Data client query UPDATE items SET text 1 complete 2 WHERE id 3 data text data complet
  • 按索引选择多索引数据框中的行而不丢失任何级别

    我想选择一个名为 Mid 的行 而不丢失它的索引 Site 以下代码显示了数据框 m commodity price max maxperstep Site Commodity Type Mid Biomass Stock 6 0 inf
  • spring数据休息更新产生交叉连接sql错误

    我想使用 Spring Data Rest 来更新某些用户的行 但在运行时此查询在查询中添加了奇怪的 交叉联接 Spring数据休息方法 Modifying Transactional Query Update Notification n