如果数据库中有 2 列,例如。
code varchar(3)
name nvarchar(50)
如何告诉hibernate通过varchar进行代码搜索?
在休眠映射中,字符串被映射到 nvarchar 并产生如下查询:
Select code, name From table where code=N'AAA' (instead of code='AAA')
这非常糟糕,因为它会导致索引扫描而不是索引查找操作(扫描所有索引节点而不是直接转到请求的节点)
由于代码用于数百万行以及多个索引和外键中,将其从 varchar 更改为 nvarchar 将导致性能下降(更多的 IO 操作,因为 nvarchar 使用的空间是 varchar 的两倍)。
有没有办法告诉hibernate根据数据库类型而不是Java类型进行映射?
谢谢