Hibernate 抓取条件被忽略

2024-01-17

我有一些与 LoginSession 类具有一对多关系的 User 类(我的 User 类中有一个 LoginSession 集合)。

@Entity(name="T_User")
public class User() 
{
   ....
     @OneToMany(fetch=FetchType.LAZY, mappedBy="user", cascade=CascadeType.ALL)
     @Fetch(FetchMode.SELECT)
     @JsonIgnore
     private Set<LoginSession> userLoginSession;
   ....
 }

这是 LoginSession 类:

@Entity(name="T_LoginSession")
public class LoginSession extends BasicDTO
{

    @ManyToOne
    @JoinColumn(name="userId")  
    protected User user;
    ...

我有这个标准:

Criteria crit = session.createCriteria(User.class);
crit.setFetchMode("loginSession", FetchMode.JOIN);
crit.createAlias("userLoginSession", "session");
crit.add(Restrictions.eq("session.token", sessionToken));
crit.setMaxResults(1);
crit.setFirstResult(0);
crit.setFetchSize(1);

问题是获取总是惰性的。我怎样才能使它成为Eager(通过标准而不是通过属性注释)?

Note:
如果我添加@Fetch上面的注释private Set<LoginSession> userLoginSession注释中设置的响应获取(我不会按标准自定义它setFetchMode).

是字段的名称(第一个参数setFetchMode方法)正确吗?

问题: 这个错误与我的问题有关吗? https://hibernate.atlassian.net/browse/HHH-6405


如前所述here https://stackoverflow.com/a/9931401/671619您不能同时过滤和急切获取集合。您可以使用相关子查询来解决它:

DetachedCriteria subquery = DetachedCriteria.For(User.class)
    .createAlias("userLoginSession", "session")
    .add(Restrictions.eq("session.token", sessionToken))
    .setFirstResult(0)
    .setMaxResults(1)     // assuming token is unique otherwise this won't restrict users but loginsessions
    .setProjection(Projections.id());

Criteria crit = session.createCriteria(User.class)
    .add(Subqueries.propertyIn("id", subquery)
    .setFetchMode("userLoginSession", FetchMode.JOIN);

注意:这是我脑海中的文本编辑器代码。方法名称可能会有所不同

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

Hibernate 抓取条件被忽略 的相关文章

  • 协助持续进行 Java 到 C# 转换的工具

    如今 许多项目都是用 Java 编写的 其中一些最终转换为 C 以合并到 NET 中 我想到的例子有 log4net nhibernate 和 db4o 包括 Sharpen db4o 的工具 在内 您是否见过和 或使用过任何使连续转换变得
  • java字符串索引越界异常

    从类中调用函数时出现以下错误 java lang StringIndexOutOfBoundsException 字符串索引超出范围 1 尽管我使用系统打印来查看我在 substring 函数中传递的输入 但一切似乎都是正确的 函数 isC
  • Spring MVC 应用程序可以是多线程的,即使它的 servlet 不是吗?

    当您谈论 Spring 应用程序是多线程时 您是否一定是指该应用程序中定义的 servlet 是否是多线程的 或者即使应用程序中的 servlet 不是多线程 Spring 应用程序也可以配置为多线程吗 不再支持单线程 servlet 它们
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • Java程序验证signtool签名的数字签名

    我已经使用 SignTool 对文件 exe 或 dll 不是 jar 文件 进行了数字签名 Signtool还可以验证数字签名 但我的要求是使用java程序检查由signtool签名的文件的数字签名 我在互联网上搜索但没有找到任何信息 您
  • 为什么从 Eclipse 导出的可运行 JAR 不起作用?

    我有一个在 Eclipse 中运行良好的项目 但是 当我将其导出到可运行的 JAR 其中包含依赖项 时 它不会运行 从控制台运行 JAR 时出现的错误是 编辑 之前没有使用 jar 运行它 INFO Loading XML bean def
  • 无法获取未知属性“运行时”Gradle 7.0

    我最近切换到 gradle 7 0 现在无法构建我的项目 jar 并出现错误 无法获取 org gradle api internal artifacts configurations DefaultConfigurationContain
  • 从 java.util.TimeZone 转换为 org.joda.DateTimeZone

    在Java中如何将一个实例转换为java util TimeZone to org joda DateTimeZone并保持夏令时 Joda Time 处于维护模式 The 乔达时间 http www joda org joda time
  • 检查 jar 是否从 shell 运行

    我有一个 java jar 程序 我试图在我的机器启动时运行它 理想情况下 shell 脚本将每 60 秒检查一次以确保 jar 正在运行 我如何检查 jar 是否在 centos 上运行 这似乎不起作用 我当前的 sh 文件 bin ba
  • 如何知道 Solr Optimize 何时完成?

    我正在使用 Solr php client 通过 php 与 Solr 进行通信 这段代码触发solr优化命令 solr gt optimize 请问有没有什么方法可以确定优化完成了 这都是因为我的网站上有一个管理页面 我每天必须手动优化
  • 没有字符串参数构造函数/工厂方法可以从字符串值 ('') 反序列化

    我在使用时遇到了 json 解析问题ObjectMapper类来自com fasterxml jackson databind包 我得到的错误是 com fasterxml jackson databind JsonMappingExcep
  • 如何更改使用 Google ReCaptcha 版本 2 时的错误消息?

    当为 Google ReCaptcha 版本 2 选择多张照片时 会显示以下错误消息 需要多个正确的解决方案 请解决更多 如何将错误消息更改为我网站上的自定义消息 这是图像 我认为不可能在服务器端 在谷歌 进行 这可以在客户端通过利用 js
  • 清单合并失败:需要为 显式指定 android:exported

    我的清单文件有问题 错误消息 清单合并失败 android 需要为 明确指定导出 面向 Android 12 及更高版本的应用需要指定显式值android exported当相应的组件定义了意图过滤器时 有关详细信息 请参阅 https d
  • 从 Spring 启动运行 Java 类

    我使用的是Java8和Spring4 3 1 我有一个 Java Spring 应用程序托管由浏览器和移动应用程序客户端访问的 RESTfult 服务 其次 我编写了一个侦听事件的聊天服务器 socket io 来自客户 该聊天服务器正在从
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • 尝试 Catch 性能 Java

    当捕获异常而不是进行检查时 try catch 需要多长时间 以纳秒为单位 假设消息具有用于查找的 HashMap 类型性能 try timestamp message getLongField MessageField TIMESTAMP
  • 如何在android中使用Room Persistence ORM工具实现created_at和updated_at列

    我该如何实施created at and updated at在Android中使用Room Persistence ORM工具的列 可以在创建或更新表中的行时自动更新时间戳 我研究了很多网站 但仍然没有找到任何可以处理的结果middlew

随机推荐

  • 使用作用域时依赖注入的顺序

    我目前正在尝试找出 Dagger 2 我正在尝试设置 4 个范围 App User Activity Fragment 用户和活动组件是应用程序的子组件 Fragment是一个以Activity为依赖的组件 假设我的 UserSetting
  • 是否有使用 ASP.NET MVC 5 Html.EditorFor() 和 Bootstrap 3.0 的解决方案?

    问题 有没有办法让 ASP NET MVC 5 Html EditorFor 表单助手使用更改后的内容Bootstrap 3 表单语法 http getbootstrap com css forms 讨论 我已经研究过的 似乎有很多关于重写
  • Python 重写 getter 而不使用 setter

    class human object def init self name self name name property def name self return self name name setter def name self v
  • 重建 Android Instant App 后,使用功能模块中基本模块中定义的颜色失败

    我有一个base模块和一个名为的功能模块query我的即时应用程序项目中的模块 My QueryActivity inside query模块使用的颜色是base module 查询活动 kt https github com mustaf
  • 分发定制 iPhone 应用程序的正确方法是什么?

    我开发了一些应用程序商店应用程序 但最近中小型公司问我是否有兴趣开发定制应用程序 我发现与 Apple 的许可和合同有点令人困惑 至少可以说 开发人员可以制作 3 种类型的构建 应用商店 Ad Hoc 企业 不需要应用程序商店 因为这些是私
  • 在 R-markdown 中显示 tibble 的所有行和列

    我正在处理 R markdown 文件 分析结果以以下形式显示tibble但为了查看所有列和行 我需要单击展开 但是 由于我要将文件编织成 html 因此我需要显示 R markdown 文件中的所有列和行 我进行了搜索并提出了以下代码 o
  • 如果 hash['a'] 不存在,如何分配 hash['a']['b']= 'c' ?

    有没有比更简单的方法 if hash key a hash a b c else hash a hash a b c end 最简单的方法是构建你的哈希 http ruby doc org core Hash html method c n
  • css-transform 动画导致闪烁

    我的代码在这里http jsfiddle net JaB5S http jsfiddle net JaB5S 您可以单击蓝色页面来运行动画 但无论何时 您都可以看到文本闪烁 直到动画完成 右侧的文字甚至消失了 我在某处读到过backface
  • 如何知道 Spring.NET 根上下文何时加载?

    我正在运行一个 Web 服务 它使用 Spring NET 来实现 IoCness 其中一个类需要在加载时执行一些操作 我正在使用AfterPropertiesSet 和 一些东西 涉及调用ContextRegistry GetContex
  • 不包含名为的导出

    我正在尝试将一个简单的组件导入到我的 React 中 我无法找到该组件 导入组件时出现以下错误 src App js 61 28 32 componentes Menu 不包含导出 名为 菜单 这是我的简单组件 import React C
  • React Native:放置全局状态变量的位置

    我正在开发我的第一个 React Native 我再次需要一些帮助 我的应用程序有一种状态 运动 这对于组件 屏幕等非常重要 根据所选的运动 我也会加载不同的样式 图像和 api 信息 将有一个模式 用户可以从中更改运动 模式现在是 Hea
  • Java:从字符串创建日期对象并插入MySQL

    每当我必须在 Java 中处理日期 时间时 这都会让我感到难过 我正在尝试解析一个字符串并将其转换为日期对象以插入到准备好的语句中 我一直在努力让它发挥作用 但运气不佳 当我去编译该类时 我还会收到有用的错误消息 线程 main java
  • 使用 json 响应时出现 406 错误

    我正在尝试通过 batman rails gem 使 Rails 应用程序与 node js 框架 batman js 一起运行 当我在 Rails 控制器中使用 json 进行响应时 每次都会收到 406 错误 但我不知道为什么 这是我的
  • Java列表中如何通过对象的属性获取对象的索引

    我想通过 Java 中的属性获取列表中对象的索引 例子 List
  • Grails,如何获取请求对象

    Grails 有一个定义的 request 对象here http grails org doc 2 2 1 ref Servlet 20API request html 问题是当我尝试使用它时 我得到 No such property r
  • 在RobotFramework中访问列表内的Dictionary元素显示错误列表对象没有属性

    这是程序代码 我有一个json文件code json 其结构如下 键 值 键 值 当我将列表元素转换为字典时 它会抛出错误 Settings Library JSONLibrary Library OperatingSystem Libra
  • 在 matplotlib 中绘制 Python networkx 图表时出现混乱

    我正在测试如何在 networkx 上创建网络图 我的问题是 当我尝试使用 matplotlib 绘制这些图表时 节点 边缘和标签显得混乱 我希望将标签附加到右侧节点 并且希望边缘看起来像连接节点 code import networkx
  • 检查字符串是否包含子字符串

    如何使用 Perl 检查给定字符串是否包含某个子字符串 更具体地说 我想看看是否s1 domain example存在于给定的字符串变量中 要查明字符串是否包含子字符串 您可以使用index http perldoc perl org fu
  • Haskell 中具有多个构造函数的记录类型

    很多时候 当我使用 Haskell 编写某些内容时 我需要具有多个构造函数的记录 例如 我想开发某种逻辑方案建模 我想到了这样的类型 data Block a Binary binOp a gt a gt a opName String i
  • Hibernate 抓取条件被忽略

    我有一些与 LoginSession 类具有一对多关系的 User 类 我的 User 类中有一个 LoginSession 集合 Entity name T User public class User OneToMany fetch F