Hibernate 二级缓存不适用于 OneToOne 关联

2023-12-04

我正在尝试启用 Hibernate 二级缓存,但无法避免为一对一关系发出多个查询。

我的模型是:

@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Business {

    @OneToOne(mappedBy = "business", cascade = {CascadeType.REMOVE}, fetch = FetchType.EAGER)
    private Address address;
}

@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Address {

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "business_id", unique = true, nullable = false, foreignKey = @ForeignKey(name = "fk_business_id"))
    private Business business;
}

当我跑步时session.get(Business.class, id)Business带身份证id在缓存中,不发出加载查询Business但它确实是为了Address.

我知道地址是关系所有者,并且在业务缓存条目中没有Address.id信息,但是通过应用与 *ToMany 关系相同的机制,为每个字段创建一个新的缓存区域,是否可以解决这个问题?假设业务 1 与地址 2 相关,第一次加载后我的缓存中将有以下区域和条目:

Business
  Business#1         -> [business model]
Business.address
  Business.address#1 -> [2]
Address
  Address#2          -> [address model]

我尝试通过注释使其工作Address.business with @NaturalIdAddress与 一起上课@NaturalIdCache。缓存区域已创建并填充,但session.get(Business.class, id)不使用它。

My Business模型有更多的 OneToOne 关系,其外键位于另一端(而不是业务),我们必须一次列出几个,因此数据库服务器必须处理每个 HTTP 请求的数十个查询。

我已经阅读了 Hibernate 的用户指南、Vlad Mihalcea 对 2LC 及其内存脱水格式的解释、Baeldung 的解释以及其他几个 StackOverflow 答案,但找不到解决此问题的方法。


None

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

Hibernate 二级缓存不适用于 OneToOne 关联 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 将 c3p0 与 Tomcat 8 数据源结合使用

    我有一个加载了数据源的 tomcat 8 服务器 我想知道是否可以将这个DataSource与c3p0连接池管理结合使用 到目前为止 这是我尝试过的 上下文 xml
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • Spring 3 匹配通配符严格,但找不到元素 'jee:jndi-lookup' 的声明

    所以我遇到了与这里类似的问题 Spring 3 0错误 匹配通配符严格 但找不到元素的声明 https stackoverflow com questions 8651781 spring 3 0 error the matching wi
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url

随机推荐

  • 如何在加载表单 Iframe 后运行 JS 代码并将自定义值放入输入中?

    http dev uniteconferencing com conference account sign free pcode 25u50PT我正在尝试从 url 获取 pcode 值并将其放入 IFRAME 表单中 我使用此代码获取值
  • 针对测试数据库集成测试 Web 服务

    我目前正在构建一个 net Web 应用程序 它使用 WCF Web 服务来允许 Flex 前端访问数据库 我正在 Web 服务上设置一些单元 集成样式测试 并试图找出允许测试访问和修改单独测试数据库中的数据的最佳方法 目前 我的单元测试项
  • Vb.Net - 动态更改文本框背景色的类

    我想知道如何创建一个类来更改表单内每个文本框的背景颜色 更具体 当文本框为空时 文本框背景颜色等于白色 当文本框获得焦点时 文本框的背景颜色发生变化 当文本框有任何文本时 文本框背景颜色会改变 当文本框失去焦点时 文本框的背景颜色会发生变化
  • 在构建我的 C# 项目时,出现“在未引用的程序集中定义”错误,如何解决?

    我已经引用了 System 和 System Data 1 类型 System ComponentModel IListSource 在未引用的程序集中定义 您必须添加对程序集的引用 系统 版本 2 0 0 0 文化 中性 PublicKe
  • 未使用准备好的语句存储数据

    我刚刚学习使用准备好的语句并卡在这里 用正常方法是没有问题的 没有显示任何错误 但数据未存储在数据库中 尽管它显示 已输入数据 db new mysqli localhost root learndb if db gt connect er
  • MySQL 查找每个邮政编码中最贵的

    我有一个名为 产品 的表 其架构 名称 城市 州 邮政编码价格 我想找到给定州的每个邮政编码的最昂贵产品的名称 I wrote SELECT zip code MAX price FROM products WHERE products s
  • 如果一个任务失败则继续执行ant脚本

    我有一个 Ant 脚本 它运行测试然后将我的应用程序部署到 QA 服务器 要部署应用程序 它首先调用sun appserv undeploy 由于各种原因 应用程序可能会也可能不会部署 如果应用程序未部署 则取消部署将失败并且整个脚本将停止
  • 是否可以在不使用临时文件的情况下在批处理文件中嵌入并执行 VBScript?

    人们长期以来一直在批处理文件中嵌入和执行 VBScript 但我见过的所有已发布的解决方案 最初提出这个问题时 涉及写入临时 VBS 文件 例如 在 Windows 批处理文件中嵌入 VBScript 是否可以在批处理中执行嵌入的 VBSc
  • 如何对列表中彼此在 n 以内的元素进行分组

    我有两个清单 list 1 list 2 1 0 3 0 3 15 1 03 6 0 7 0 我想对这个列表进行排序并合并其中的元素 在本例中 0 15彼此的 所以到这结束的时候 list 1其中包含以下值 1 0 1 03 3 0 3 1
  • 在 Rnw 中使用 ggvis 和 knit

    我想知道我是否可以在 Rnw 中使用 ggvis 和 knit 我尝试了以下代码RStudio Version 0 98 1091 但它不起作用 documentclass book usepackage T1 fontenc usepac
  • 具有自定义布局和自定义菜单项的 ActionBar

    我想通过 put 制作自定义操作栏ImageView在中间 并在操作栏的右侧有另一个带有一些信息的图标 如下所示 我已经可以在中间制作 imageview 但问题是 当我膨胀布局时onCreateOptionMenu 并设置showAsAc
  • 如何将事件处理程序委托转换为具有不同签名的事件处理程序委托

    我正在编写的代码实际上是一个 WPF 行为 用于从网格控件中获取所选项目 众所周知 SelectedItems 不是可绑定属性 我实际上使用的是 Telerik RadGridView 但我希望行为对于具有 SelectionChanged
  • Android - “无法加载 Foo:findLibrary 返回 null”

    我知道已经有关于堆栈溢出的错误的帖子 但是从我在 SO 和 Google 上找到的内容来看 与我的问题不符 我正在尝试运行我的应用程序 但是每当调用本机函数时我的程序就会崩溃 并且我得到以下信息LogCat 08 01 09 15 57 4
  • SQL Case Order 按特定顺序

    好吧 我以前问过类似的问题 但我研究过 但没有具体找到这个 我有一个表 需要按字段 OptionName NVarChar 和 IsActive BIT 进行排序 对于 DDL 我需要结果按以下顺序排列 Option A Option B
  • Excel VBA 中出现 Double 类型溢出错误

    我在 Excel VBA 中遇到了溢出错误 并且无法找到解决方法 虽然 Microsoft 的文档表明双精度数的范围应达到 1 8E308 但我收到了明显低于该阈值的数字的溢出错误 我的代码如下 Public Function Fixed
  • Xamarin.Forms v3 中的 MasterDetail + 从右到左

    我正在使用从右到左的新表单功能 除了 MasterDetail 汉堡菜单图标外 它运行良好 它保留在左侧 当本地化发生更改时 我需要将其移至右侧 有什么想法或者有人可以帮助我使用自定义渲染器吗 也不是不可能 但需要一些肮脏的编码 请在此处检
  • 如何旋转 pandas 图中的 x 轴刻度标签

    使用以下代码 import matplotlib matplotlib style use ggplot import matplotlib pyplot as plt import pandas as pd df pd DataFrame
  • LSTM 时间序列会产生偏移预测吗?

    我正在使用 LSTM NN 和 Keras 进行时间序列预测 作为输入特征 有两个变量 降水量和温度 要预测的一个目标是地下水位 尽管实际数据和输出之间存在严重的偏移 见图 但它似乎工作得很好 现在我读到这可能是网络无法正常工作的典型标志
  • 在 mac os 上的 nasm 中编译汇编程序

    所以 我写了一些关于asm的指令 并编译它们 nasm f macho test asm 现在 nasm生成obj文件 test o gcc test o 返回下一个错误 ld 警告 忽略文件 test o 文件是为不受支持的文件构建的 不
  • Hibernate 二级缓存不适用于 OneToOne 关联

    我正在尝试启用 Hibernate 二级缓存 但无法避免为一对一关系发出多个查询 我的模型是 Entity Cache usage CacheConcurrencyStrategy READ WRITE public class Busin