gpt4 book ai didi

hibernate - 弃用后实现 Hibernate UserType 的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 23:56:12 25 4
gpt4 key购买 nike

我最近获得了最新版本的 Hibernate,并注意到我的 UserTypes 现在有关于 AbstractStandardBasicType 的 nullSafeGet(ResultSet,String) 和 nullSafeSet(PreparedStatement,T,int) 方法的警告是 deprecated支持采用 SessionImplementor 参数的相应方法。问题在于,当您实现 UserType 时,SessionImplementor 不会像在 BasicType、CompositeUserType 等中那样传递给您。

我查看了 Hibernate 手册以查看是否有更新的示例。他们的 UserType 示例使用 get/set 而不是 nullSafeGet/nullSafeSet,但这些方法也被弃用,以支持采用 SessionImplementor 的版本。因此,似乎甚至 Hibernate 的官方 UserType 示例都在使用不推荐使用的方法,这让我想知道两件事:

  • 有没有一种从 UserType 中获取 SessionImplementor 的好方法?
  • 如果从 UserType 中获取 SessionImplementor 不切实际,并且我不想编写自己的 nullSafeGet/nullSafeSet,我是否应该放弃 UserType 以支持其替代方案之一? UserType 和例如 BasicType 之间的实际区别是什么?
  • 最佳答案

    感谢 Ryan Ransford 对我最初的问题的评论。虽然这并不是真正解决问题的方法,但 link他从 Hibernate 开发人员邮件列表中提供的内容解释了为什么没有可用的解决方案。

    A non-deprecated alternative cannot be provided in 3.6.x, because doing so would break implementations of UserType.



    考虑到这些只是弃用警告,因此在下一个非维护版本可用时将过时的解决方法投入太多时间是没有意义的。不幸的是,下一个大版本是 4.0,而不是 3.7,因此迁移可能会涉及更多。

    关于hibernate - 弃用后实现 Hibernate UserType 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083768/

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