PlayFramework 2 + Ebean - 原始 Sql 更新查询 - 对数据库没有影响

2023-12-23

我有一个 play Framework 2.0.4 应用程序想要修改数据库中的行。

我需要将数据库中的“少数”消息更新为“已打开”状态(读取消息) 我做了如下

    String sql = " UPDATE message  SET opened = true, opened_date = now() "
            +" WHERE id_profile_to = :id1 AND id_profile_from = :id2 AND opened IS NOT true";
    SqlUpdate update = Ebean.createSqlUpdate(sql);
    update.setParameter("id1", myProfileId);
    update.setParameter("id2", conversationProfileId);        
    int modifiedCount = update.execute();

我已经修改了 postgresql 来记录所有查询。

moddedCount 是实际修改的行数 - 但查询处于事务中。 在数据库中完成查询后,会出现回滚 - 因此不会进行更新。 我尝试将 db 更改为 H2 - 得到相同的结果。

这是来自 postgres 审计日志的查询

2012-12-18 00:21:17 CET :  S_1: BEGIN
2012-12-18 00:21:17 CET :  <unnamed>:  UPDATE message  SET opened = true, opened_date = now()  WHERE id_profile_to = $1 AND id_profile_from = $2 AND opened IS NOT true
2012-12-18 00:21:17 CET : parameters: $1 = '1', $2 = '2'
2012-12-18 00:21:17 CET :   S_2: ROLLBACK

…………

Play 框架文档和 Ebean 文档 - 声明不存在事务/如果未声明或在每个查询需要时为瞬态/。

所以...我已经成功了

    Ebean.beginTransaction();
    int modifiedCount = update.execute();
    Ebean.commitTransaction();
    Ebean.endTransaction();
    Logger.info("update mod = " + modifiedCount);

但这没有什么区别 - 相同的行为......

Ebean.execute(update);

再次-同样..

我做了下一步 - 我用以下方法注释了该方法

@Transactional(type=TxType.NEVER)

and

@Transactional(type=TxType.MANDATORY)

他们都没有改变。

我对 Ebean 感到非常沮丧:( 有人可以帮忙吗?

顺便提一句。 我设置

    Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(true);
    Ebean.getServer(null).getAdminLogging().setDebugLazyLoad(true);
    Ebean.getServer(null).getAdminLogging().setLogLevel(LogLevel.SQL);

在 Play 控制台中查看查询 - 记录其他查询 - 此更新 - 不


只需删除最初的空格...是的..我也不敢相信... 从“更新...更改为”更新...

就这样...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PlayFramework 2 + Ebean - 原始 Sql 更新查询 - 对数据库没有影响 的相关文章

  • Java 事务 API (JTA) 概述帮助

    有人可以给我一个关于 JTA 在现代 Java 应用程序中的动机和应用的很好的解释吗 我不需要过多的技术细节 但只是一段关于为什么我们需要 JTA JTA 能完成什么 也许还有一段伪代码显示如何使用 JTA 通常 应用程序对数据库 JMS
  • 如何查看任意 Oracle 会话正在使用的事务隔离级别

    我试图找出特定会话 不是我自己的会话 在 Oracle 服务器上的隔离级别 有 v 视图可以得到这个吗 您可以在中测试位 28flag列于v transaction 1 http forums oracle com forums threa
  • 重复键错误不会取消/回滚mysql事务

    当在 mysql innodb 事务中时 我希望重复的键错误会导致回滚 它没有 相反 它只是抛出一个错误并继续执行下一个命令 一旦到达 COMMIT 命令 事务将被提交 没有重复键导致命令 这是预期的行为吗 如果是这样 如何设置它以便在发生
  • Postgresql 致命数据库系统正在启动 - Windows 10

    我已经安装了postgresql on windows 10 on usb disk 每天当我启动电脑工作时sleep并再次插入磁盘然后尝试启动postgresql我收到这个错误 FATAL the database system is s
  • Laravel 7.x eloquent addSelect 子查询来计数

    与 一起工作Laravel 7 x and Postgresql 我有一个User类和GroupPivot数据透视表 可以对多个模型进行分组 我想创建一个专栏User如果用户拥有针对该组的当前数据透视条目 则为 true 或 false 类
  • 列“users.id”必须出现在 GROUP BY 子句中或在聚合函数中使用

    关系 Item belongs to Product Product belongs to User 项目型号范围 scope search gt search term select products name users product
  • 更新期间唯一索引违规

    我在更大的数据库中遇到了唯一索引违规 最初的问题发生在存储的 pl pgsql 函数中 我已经简化了一切以显示我的问题 我可以在一个相当简单的表格中重现它 CREATE TABLE public test id integer NOT NU
  • 在 SELECT 中将列值拆分为两列?

    我在 varchar 列中有一个字符串值 它是一个由两部分组成的字符串 在它到达数据库之前分割它不是一个选择 该列的值如下所示 one column part1 part2 part1 part2 所以我想要的是一个如下所示的结果集 col
  • 后退按钮 (Chrome) 在 Play Framework 中获取 Json 而不是 HTML

    各位 我有一个 Web 应用程序 我在其中对同一资源的 JSON 和 HTML 表示重复使用了相同的路由 现在我们将其称为 foo details 该页面是从 bar details 链接的 因此 查看 bar details 您会看到链接
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • “$$ 处或附近的未终止的美元引号字符串

    我试图使用 DBeaver 声明一些变量并不断遇到此错误 Unterminated dollar quoted string at or near DO DECLARE A integer B integer BEGIN END 有任何想法
  • IntelliJ Ultimate 在 Play 2.3 (Java) 项目测试中找不到路由

    虽然我的测试运行得很好 但 IntelliJ 抱怨它找不到路由对象 并且代码自动完成无法工作 我已经查看了所有文档 这应该可以工作 这是 IntelliJ 的报告内容 关于我的项目配置可能有什么问题有什么想法吗 这很可能与以下事实有关 ro
  • 将 Google CloudSQL Postgres 数据库连接到 Data Studio

    我正在尝试将托管在 google Cloud Sql 实例中的 Postgres 数据库连接到 Data Studio 我已按照说明进行操作 在此处找到https support google com datastudio answer 7
  • django 中计数器的原子增量

    我正在尝试自动增加 Django 中的一个简单计数器 我的代码如下所示 from models import Counter from django db import transaction transaction commit on s
  • POSTGRESQL:如何在现有表上添加包含数据的新列

    我是 postgres 和 sql 脚本的新手 所以请耐心等待 我想要做的是在现有表上添加包含数据的现有列 现有表的示例 NAME AGE Adam 25 Tim 30 现在我想添加一个新列 ADDRESS 其中包含 Adam 和 Tim
  • pq:无法调整共享内存段的大小。设备上没有剩余空间

    我在仪表板上有许多面板 数量约为 6 个 用于显示数据点图表 对 PostgreSQL 数据库的 Dockerized 实例进行查询 直到最近 面板都工作正常 有些面板停止工作并报告如下错误 pq 无法将共享内存段 PostgreSQL 2
  • Rails csv 格式的原始查询,通过控制器返回

    我使用 Active Record 来获取我的故事 然后生成 CSV 这是在 Rails Cast 中完成的标准方法 但我有很多行 需要几分钟 我想如果我能让 posgresql 来做 csv 渲染 那么我可以节省一些时间 这是我现在所拥有
  • 如何进行 PostgreSQL 交叉表查询,列中缺少值

    我正在尝试使用 PostgreSQL 9 5 交叉表查询创建周转时间报告 其中推荐分为第 1 2 3 4 gt 4 天 请参见下面的输出 但是 如果我运行查询并且第 2 天的值丢失 则我的查询可以正常工作 整行将向左移动一个单元格 所以第二
  • PSQLException:大对象不能在自动提交模式下使用

    我正在使用 WildFly 10 Java EE JPA 和 Hibernate 最近我将我的应用程序从 MySQL 迁移到 PostgreSQL 在使用 MySQL 时 我会使用以下方法将图像存储在我的实体中 Lob Basic fetc
  • Postgresql 使用 IN 与 NOT IN 时的巨大性能差异

    我有两张桌子 transaksi 和 buku transaksi 大约有 25 万行 buku 大约有 17 万行 两个表都有名为 k999a 的列 并且两个表均不使用索引 现在我检查这两个陈述 声明一 explain select k9

随机推荐