Если в базе данных есть 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 приведет к ухудшению производительности (больше операций ввода-вывода, поскольку nvarchar использует в два раза больше пространства, чем varchar).
Есть ли способ сообщить hibernate делать сопоставление в соответствии с типом базы данных, а не с типом Java?
Спасибо