如果數據庫中有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