我们有许多带有 Location 类型的 @JoinColumn 字段的 Hibernate 实体。位置数据基本上是静态的,所以我们决定将它们完全缓存在内存中。
最初的计划是用 locationId 字段替换所有 Location 字段。然而,我们很快意识到这是太多的工作,特别是因为存在引用位置字段的条件查询,现有工具无法轻松获取。
另一种方法是实现自定义 Hibernate 类型,将 locationIds 从数据库映射到 Location 对象,但似乎没有任何简单的方法可以将缓存 bean 注入自定义类型实例。
(我们的 Hibernate 版本不提供 Configuration.registerTypeOverride() 调用,因此我们无法控制 Type 实例的实例化,因此无法注入。)