0

我们有许多带有 Location 类型的 @JoinColumn 字段的 Hibernate 实体。位置数据基本上是静态的,所以我们决定将它们完全缓存在内存中。

最初的计划是用 locationId 字段替换所有 Location 字段。然而,我们很快意识到这是太多的工作,特别是因为存在引用位置字段的条件查询,现有工具无法轻松获取。

另一种方法是实现自定义 Hibernate 类型,将 locationIds 从数据库映射到 Location 对象,但似乎没有任何简单的方法可以将缓存 bean 注入自定义类型实例。

(我们的 Hibernate 版本不提供 Configuration.registerTypeOverride() 调用,因此我们无法控制 Type 实例的实例化,因此无法注入。)

4

1 回答 1

0

在我的特定情况下,我可以将实体的 PersistenceProvider 子类化,并在创建会话工厂后立即传递 Spring 上下文。

于 2012-10-13T23:32:15.113 回答