Hibernate在其第二级缓存中以脱水形式存储实体。这对我来说很好,直到定制的用户类型进入场景,特别是贾迪拉氏UserType库,我用它来映射Joda时间类型。
持久性可以正常工作,但是Hibernate的我发现会将对LocalDate
实例的“原始”(序列化)引用放入其第二级缓存中,这会导致一些问题,因为每个LocalDate
实例保存了大量对内部数据结构的引用,而这些引用不应该出现在缓存中。
是否有一种方法可以连接到Hibernate的(去)水化策略,以便对哪些数据最终存储在它的二级缓存中进行精细的谷物控制?
发布于 2014-09-24 13:03:38
Jadira的UserType库使用org.hibernate.usertype.UserType
实现它的自定义类型。UserType
实例在放入第二级缓存时被简单地序列化,对于Joda时间实例来说,这是一个不太理想的选择。
这个问题可以通过在实现自定义类型时使用org.hibernate.usertype.CompositeUserType
来解决,这使您能够完全控制实体在放入(或从缓存中取出)时应该如何(去)水化。
我向Jadira提交了一个特性请求,但现在我将通过实现我自己的自定义类型来继续前进。
https://stackoverflow.com/questions/26012103
复制相似问题