如果数据库中有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类型进行映射?
谢谢
将以上代码添加到hibernate的reveng文件中。