已弃用的 Hibernate.createClob(Reader reader, int length) 的替代方案是什么

发布于 2025-01-05 15:57:09 字数 260 浏览 1 评论 0原文

似乎 Hibernate.createClob(Reader reader, int length) 在版本 3.6.x 中已弃用 它建议使用 LobHelper.createClob(Reader, long) 代替。

LobHelper 是一个接口而不是一个类。

是否有静态方法 Hibernate.createClob(Reader reader, int length) 的替代方法?

Seems like Hibernate.createClob(Reader reader, int length) is deprecated in version 3.6.x
And it suggests to use Use LobHelper.createClob(Reader, long) instead.

But LobHelper is an interface not a class.

Is there any alternate for static method Hibernate.createClob(Reader reader, int length)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

玩物 2025-01-12 15:57:09

我正在使用该类中的 createBlob(bytes[]) 。我创建了一个新类和以下方法

    public static Blob createBlob(byte[] bytes) {
       return NonContextualLobCreator.INSTANCE.wrap(NonContextualLobCreator.INSTANCE.createBlob(bytes));
    }

I was using the createBlob(bytes[]) from that class. I created a new class and the following method

    public static Blob createBlob(byte[] bytes) {
       return NonContextualLobCreator.INSTANCE.wrap(NonContextualLobCreator.INSTANCE.createBlob(bytes));
    }
偷得浮生 2025-01-12 15:57:09

这是通过隐藏实现来简化使用的方法。如果您想使用 Clob 数据,您需要使用以下代码。我已经在 hibernate 3.6 版本中对其进行了测试。

session.getLobHelper().createClob("the_string");

现在是关于它的工作原理的第二点,如果您阅读 org.hibernate.impl.SessionImpl 类的源代码,您将知道 hibernate 内部如何处理这个问题。

public LobHelper getLobHelper()
/*      */   {
/* 2245 */     if (this.lobHelper == null) {
/* 2246 */       this.lobHelper = new LobHelperImpl(this, null);
/*      */     }
/* 2248 */     return this.lobHelper;
/*      */   }

It is the way of simplifying the usage by hiding the implementations. If you want to use the Clob data you need to use the below code. I have tested it in version hibernate 3.6.

session.getLobHelper().createClob("the_string");

Now coming your second point about the working of it, if you read the source code of org.hibernate.impl.SessionImpl class you will know how internally hibernate handles this.

public LobHelper getLobHelper()
/*      */   {
/* 2245 */     if (this.lobHelper == null) {
/* 2246 */       this.lobHelper = new LobHelperImpl(this, null);
/*      */     }
/* 2248 */     return this.lobHelper;
/*      */   }
握住你手 2025-01-12 15:57:09

我找到了另一个很好的替代方案,
使用 java javax.sql.rowset.serial.SerialClob

例如

Clob clob = new SerialClob("Some very long String.......".toCharArray());

I have found another good alternate for this,
using java javax.sql.rowset.serial.SerialClob

For example

Clob clob = new SerialClob("Some very long String.......".toCharArray());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文