当前位置: 首页 > 知识库问答 >
问题:

在存储过程进行更改后,如何刷新hibernate对象

齐栋
2023-03-14

在我的grails应用程序中,我们调用的存储过程可能会更新数千条记录。在存储过程调用之后,我需要以json格式将其中许多记录发送回UI。但是,hibernate会在存储过程完成后继续查看旧对象。我在这些对象中的每一个上都尝试了execute(),并使用HQL再次加载了它们,但没有任何效果。

解决这个问题的最佳方法是什么。

共有1个答案

鞠泰平
2023-03-14

答案在于问题。:)使用刷新()。请参阅此。

如果要完全清除Hibernate会话,则可以使用会话。清除()。请参阅清除。为此,您需要掌握当前会话,您可以通过两种方式进行:

>

  • 获取会话工厂,获取当前会话并清除相同的会话<代码>grailsApplication。主上下文。sessionFactory。当前会话。清除()

    使用带有会话闭包。

    <代码>DomainABC. with会话{s-

  •  类似资料:
    • 我们有大约100000条记录要插入数据库。在Hibernate批插入中执行此操作是一个好主意吗?选择批量大小的策略应该是什么? 或者我们应该为批量插入调用存储过程?无法获取有关将对象数组从Hibernate传递到DB存储过程的任何信息。 或者两者的混合搭配会加快这一过程。比如批量调用存储过程?

    • 问题内容: 我使用fullcalendar v4来显示事件。事件在负载中正常显示,但是我需要使用多个复选框添加过滤器,并在使用ajax的onchange复选框之后刷新全日历事件。 更改后,我得到了新的对象事件,但我需要刷新我尝试使用的fullcalendar,但无法正常工作 全日历脚本 阿贾克斯脚本 更改时复选框功能 问题答案: 您没有确切解释代码出了什么问题,但是我可以看到,当您从AJAX调用获

    • 问题内容: 我有一个ac#实体框架应用程序。我正在尝试从代码运行存储过程(没有问题)。它长期运行,大约30分钟。随着过程的进行,我将每个事务的日志写入SQL表。我希望从该应用程序启动该过程,但随后在屏幕上显示登录的最后10条记录,可能每10秒重新查询一次。这将显示进度。 我更改了代码以简化。线程在dispatcherTime_Tick进程上阻塞。看起来存储过程很好。 这就是所谓的服务。 我一直在执

    • 我正在使用Hibernate Envers进行审计。后期更新和后期插入工作正常。 我有一个要求,即我只需要审核审核表中更新的列(例如employee_aud)。默认情况下,envers会将整个持久化实体插入到审计表中。 我只需要插入已更新的值。 有没有可能这样做? 提前谢谢。 干杯

    • 问题内容: 我在MySQL数据库中存储了大约一百个例程,其中大多数都以“ root”作为定义者。 我有另一个名为“ abc”的mysql帐户,如何将所有例程的定义程序更改为“ abc”。 如果我只能以“ abc”用户而不是“ root”用户身份访问MySQL服务器,是否可以这样做? 问题答案: 据我所知:您将必须获取所有脚本的脚本文本并将其拖放/重新创建为abc。除非abc有权删除/创建过程,否则