【问题标题】:How to get Clob data from native query?如何从本机查询中获取 Clob 数据?
【发布时间】:2010-09-24 15:35:38
【问题描述】:

我试过这个:

List resultList = session.createSQLQuery("select pack.FuncName ClobData from dual").list()

whereis FuncName 它是返回 clob 数据的函数的名称。但是在resultList 中,我看到了一些代理对象(例如$Proxy189)。我相信...这很简单,我不想通过反射来获取我的数据。

【问题讨论】:

标签: java sql hibernate


【解决方案1】:

我发现这为我解决了类似的问题,而无需代理或自定义转换器:

createSQLQuery("...").addScalar("clob_field", StandardBasicTypes.MATERIALIZED_CLOB);

【讨论】:

    【解决方案2】:

    是的,使用 ORM 直接启动 SQL 查询不是一个好主意(默认情况下)。

    可能更适合您的情况的解决方案之一是将您的FuncName 返回的 CLOB 数据映射到新的非托管实体(如果是这样的话)。您可以创建一个符合您要求的新实体并获取数据。例如,您可以阅读它here

    当然,其他解决方案可以是,启动准备/构建 clob 数据的函数,保存它(例如在临时表结构中),然后使用 @Lob 注释加载它。查看有关Property mapping with annotations的参考

    【讨论】:

      猜你喜欢
      • 2018-08-11
      • 2015-09-24
      • 2015-08-24
      • 2020-10-15
      • 1970-01-01
      • 2015-02-05
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多