Если в базе данных есть 2 столбца, например.
code varchar(3)
name nvarchar(50)
Как сказать hibernate передать varchar для поиска по коду?
В hibernate mappings строка сопоставляется с nvarchar и выдает такие запросы:
Select code, name From table where code=N'AAA' (instead of code='AAA')
Это очень плохо, так как вызывает сканирование индекса вместо операции поиска по индексу (сканирование всех узлов индекса вместо прямого перехода к запрошенному)
Поскольку код используется в миллионах строк, а также в нескольких индексах и внешних ключах, изменение его с varchar на nvarchar приведет к снижению производительности (больше операций ввода-вывода, поскольку nvarchar использует вдвое больше места, чем varchar).
Есть ли способ указать hibernate сделать отображение в соответствии с типом базы данных, а не типом Java?
Спасибо