gpt4 book ai didi

java - Hibernate 二级缓存中自定义用户类型的内部表示

转载 作者:行者123 更新时间:2023-12-02 05:25:59 34 4
gpt4 key购买 nike

Hibernate 将实体以脱水形式存储在其二级缓存中。这对我来说效果很好,直到自定义用户类型进入场景,特别是 Jadira's UserType库,我用它来映射 Joda 时间类型。

持久性开箱即用,但 I've discovered Hibernate 会将对 LocalDate 实例的“原始”(序列化)引用放入其二级缓存中,这会导致一些问题,因为每个 LocalDate 实例都会保留大量对内部数据结构,不应出现在缓存中。

有没有一种方法可以连接到 Hibernate 的(脱水)策略来精细控制哪些数据最终将存储在其二级缓存中?

最佳答案

Jadira 的 UserType 库使用 org.hibernate.usertype.UserType 来实现其自定义类型。 UserType 实例在放入二级缓存时会被简单地序列化,这对于 Joda 时间实例来说并不是理想的选择。

这个问题可以通过在实现自定义类型时使用org.hibernate.usertype.CompositeUserType来解决,这使您可以完全控制实体在放入(或取出)时应如何(脱水)水合出)缓存。

我向 Jadira 提交了功能请求,但现在我将通过实现我自己的自定义类型来继续前进。

关于java - Hibernate 二级缓存中自定义用户类型的内部表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012103/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com