【问题标题】:Hibernate Mapping for Oracle RAW columnOracle RAW 列的休眠映射
【发布时间】:2018-01-27 05:47:34
【问题描述】:

我们正在使用 Hibernate,但不确定如何将属性映射到 Oracle 表中的 RAW 列(特别是在它们上有索引的列)。

众所周知,String 不能用于实体属性值 - Hibernate 无法预先添加 HEXTORAW Oracle 函数调用以创建索引在要使用的列上(因为没有这个 Oracle 会隐式地将 RAWTOHEX 附加到列值本身)。

但是,尚不清楚使用 byte[] 作为实体属性值是否可以解决此问题。由于 JDBC 驱动程序直接发送二进制数据 - 假设使用索引是合乎逻辑的 - 因为不需要执行 HEXTORAWRAWTOHEX 函数。

但是,我不确定如何证明这一点(除了放置数百万条记录并执行一些基准测试)。 我试图搜索类似的问题,但没有成功。

有人知道吗? 提前致谢,

【问题讨论】:

    标签: oracle hibernate


    【解决方案1】:

    最终答案 - 是的,映射 byte[] 有效。

    在具有数百万条记录和 RAW 类型主键的表上进行了测试。

    如果使用字符串,则需要大约 2 分钟才能通过 PK 查找记录。

    立即找到带有byte[]的记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-23
      • 2019-01-17
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多