我们正在使用Hibernate并且不确定如何将属性映射到Oracle表中的RAW列(特别是在它们上面有索引)。
已知的事实是 String 不能用于实体属性值 - Hibernate无法在 HEXTORAW Oracle函数调用前添加以便生成索引在要使用的列上(因为没有这个Oracle隐式地将RAWTOHEX附加到列值本身)。
但是,使用 byte [] 作为实体属性值是否正在解决此问题尚不清楚。由于JDBC驱动程序直接发送二进制数据 - 假设使用索引是合乎逻辑的 - 因为不需要既不执行 HEXTORAW 也不执行 RAWTOHEX 函数。
但是,我不确定如何证明它(除了投入数百万条记录并执行一些基准测试)。 我试图搜索类似的问题,但没有成功。
有没有人知道这件事? 提前谢谢,
答案 0 :(得分:3)
最终答案 - 是的,映射byte []有效。
在具有数百万条记录和RAW类型主键的表上进行测试。
如果使用String,则需要约2分钟才能通过PK查找记录。
立即找到byte []记录。