La cartographie de type varchar et nvarchar en veille prolongée

Si il y a 2 colonnes dans la base de données, par exemple.

code varchar(3)
name nvarchar(50)

Comment dire hibernate pour passer varchar pour la recherche par code?

Dans hibernate mappages de chaîne est mappé à nvarchar et il produit des requêtes comme:

Select code, name From table where code=N'AAA'  (instead of code='AAA')

C'est très mauvais, car il provoque des index scan au lieu de l'opération de recherche d'index (l'analyse de tous les nœuds d'index au lieu d'aller directement à la demande)

Que le code est utilisé dans des millions de lignes ainsi que dans plusieurs index et les clés étrangères, en changeant de type varchar nvarchar entraîner une dégradation des performances (plus d'opérations d'e /s de type nvarchar utilise deux fois plus d'espace que varchar).

Est-il possible de dire d'hibernation pour faire de la cartographie en fonction de type de base de données, pas de type Java?

Grâce

  • Poser cette question sur la groups.google.com/group/nhusers
  • vous souhaitez hiberntae faire de votre champ dans la base de données par type nvarchar? ou quelque chose d'autre?
  • Je veux hibernate pour passer varchar paramètre de type varchar et nvarchar paramètre de type nvarchar. par exemple. Insert Into table(varcharCol, nvarcharCol) Values ('aaa', N'aaa')
  • avez-vous résolu le problème? j'ai le même
InformationsquelleAutor Niikola | 2009-08-20