使用休眠和 Oracle 将 Clob 转换为字符串
Posted
技术标签:
【中文标题】使用休眠和 Oracle 将 Clob 转换为字符串【英文标题】:Clob to String using hibernate and Oracle 【发布时间】:2014-03-10 13:22:15 【问题描述】:我在使用休眠模式从 oracle 数据库中读取数据时遇到了困难。该列是 clob 类型,映射类属性是 String 类型。数据库是Oracle 11G。我已尝试按照一些帖子的建议更新我的驱动程序,但这没有用。问题是所有其他列(不是 clob)都被正确读取,并且作为 clob 的列除了有数据之外返回 null。提前致谢。
查询是:
select id,about_us,other_details,periodicity,active,createts,updatets from Details where id = ?
这在 HQL 查询之上,其中 about_us 和 other_details 是数据库中的 clob 类型。 Java 实体将其作为 String 类型包含。
拉胡尔
【问题讨论】:
【参考方案1】:我尝试了许多不同帖子中建议的解决方案,其中包括:
1) 更新 odbc jar。
2) 在休眠映射/实体中的属性上使用@lob
。
上述两种解决方案都不适合我,而是我使用休眠函数str(clob_property)
来读取它,它对我有用,我可以读取属性。
问候 拉胡尔
【讨论】:
【参考方案2】:你尝试过这样的事情吗?
@Lob @Column(name = "long_text")
private String longText;
【讨论】:
是的,我尝试过使用@Lob 注释,但它没有喘息的机会。事实上,Hibernate 仅使用@Column
注释来检测自己的底层列。以上是关于使用休眠和 Oracle 将 Clob 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
JAVA读取Oracle数据库Clob字段转换成String问题
将 CLOB 转换为 NUMBER 以进行比较 - Oracle