当前位置: 首页 > 面试题库 >

为什么Hibernate切换为通过CLOB使用LONG?

西门胜涝
2023-03-14
问题内容

似乎Hibernate开始LONG在3.5.5版(我们从3.2.7升级)中使用数据类型,而不是CLOB使用的属性type="text"

这是造成问题,因为LONG在Oracle数据类型是一个古老的过时的数据类型(参见http://www.orafaq.com/wiki/LONG不应被使用),以及表不能具有一个以上的列LONG作为数据类型。

有谁知道为什么改变了?

我尝试将Oracle SetBigStringTryClob属性设置为true(如[Hibernate>CLOB>Oracle所建议),但这不会影响数据类型映射,而只会影响与我的情况无关的数据传输内部。

一种可能的解决方案是覆盖org.hibernate.dialect.Oracle9iDialect

public class Oracle9iDialectFix extends Oracle9iDialect {
  public Oracle9iDialectFix() {
    super();
    registerColumnType(Types.LONGVARCHAR, "clob");
    registerColumnType(Types.LONGNVARCHAR, "clob");
  }
}

但是,这是不得已的方法-重写此类比向Hibernate派生更近一步,我宁愿避免这样做。

谁能解释为什么这样做?是否应该将其作为错误提出?

[更新]:我已经创建了https://hibernate.atlassian.net/browse/HHH-5569,让我们看看会发生什么。


问题答案:

看来该问题的解决方案正在使用materialized_clob,至少这是盖尔·巴德纳(Gail
Badner)在HHH-5569上所说的。

这根本没有帮助我(我对此发表了评论),但可能对这里的其他人有所帮助。无论如何,该错误都会被拒绝,对此我几乎无能为力,只能使用覆盖的方言:(



 类似资料:
  • 问题内容: 我阅读了以下声明: x86体系结构包括一种称为任务状态段(TSS)的特定段类型,用于存储硬件上下文。尽管Linux不使用硬件上下文切换,但是仍然被迫为系统中每个不同的CPU设置一个TSS。 我想知道: Linux为什么不使用硬件支持进行上下文切换? 硬件方法不是比软件方法快得多吗? 是否有任何可以利用硬件上下文切换的操作系统?Windows是否使用它? 最后,一如既往,感谢您的耐心等待

  • 问题内容: 为什么通过硒切换到警报不稳定? 例如。 1.运行代码,一切顺利。一切顺利。但是,如果这段代码在几分钟内运行,则可能会出现错误。例如,没有元素可以单击。等等。 2.在一个站点上,有一个警报窗口。 所以我关闭了。但是他一直在工作。一切都好,然后是错误。 我写了,一切都按预期进行。 但是我认为这并不漂亮。 为什么一切都这么不稳定? 非常感谢你。 问题答案: 根据您的代码块,您需要解决以下两个

  • 我在使用Hibernate读取oracle数据库时遇到困难。列为clob类型,映射类属性为String类型。数据库是Oracle 11g。我曾尝试按照一些帖子的建议更新我的驱动程序,但没有用。问题是,所有其他列(不是clob的列)都被正确读取,而clob的列除了有数据外,还返回null。提前道谢。 查询是: 从Details中选择id,about_us,other_details,periodic

  • 本文向大家介绍为什么要使用 hibernate?相关面试题,主要包含被问及为什么要使用 hibernate?时的应答技巧和注意事项,需要的朋友参考一下 hibernate 是对 jdbc 的封装,大大简化了数据访问层的繁琐的重复性代码。 hibernate 是一个优秀的 ORM 实现,很多程度上简化了 DAO 层的编码功能。 可以很方便的进行数据库的移植工作。 提供了缓存机制,是程序执行更改的高效

  • 问题内容: 我是一个相对较新的程序员,与他告诉我的一个合作伙伴交谈,他说在AJAX之前,他使用iframe来发送数据并更改内容(显然是在JavaScript的帮助下)。 我知道两者都是相似的技术,但是我没有找到描述其特征的文章, 与Iframe相比,AJAX有哪些优势? 编辑 我没有找到任何关于该技术的解释,但是我的搭档告诉我他将数据通过隐藏的iframe发布并提交iframe,听起来好像只需要刷

  • 问题内容: 我已经阅读了这个答案,减少了样板,看了几个GitHub示例,甚至尝试了一点redux(待办事项应用程序)。 据我了解,与传统的MVC架构相比,官方的redux doc动机 提供了很多优点。但是它没有提供以下问题的答案: 为什么要通过Facebook Flux使用Redux? 这仅仅是编程风格的一个问题:功能性还是非功能性? 还是问题出在redux方法之后的abilities / dev