如果数据库中有2列,映射到休眠状态下的varchar和nvarchar
code varchar(3)
name nvarchar(50)
如何告诉hibernate传递varchar通过代码进行搜索?
在Hibernate映射串映射为nvarchar和它产生查询:
Select code, name From table where code=N'AAA' (instead of code='AAA')
这是非常糟糕的,因为它会导致索引扫描而不是索引查找操作(扫描所有的索引节点,而不是直接去请求一个)
由于代码在数百万行以及多个索引和外键中使用,因此将其从varchar更改为nvarchar将导致性能下降(更多的IO操作,因为nvarchar使用的空间比varchar多两倍)。
有什么办法让hibernate根据数据库类型做映射,而不是Java类型吗?
感谢
在http://groups.google.com/group/nhusers – 2009-08-20 20:52:16
上提问您想让hiberntae通过nvarchar类型在数据库中创建您的字段?或者是其他东西? – Am1rr3zA 2009-08-21 14:45:11
我想让hibernate将varchar参数传递给varchar类型,将nvarchar参数传递给nvarchar类型。 例如。插入到表(varcharCol,nvarcharCol)值('aaa',N'aaa') – Niikola 2009-09-01 22:38:16