Se ci sono 2 colonne nel database, ad es.Mappatura a varchar e nvarchar in sospensione
code varchar(3)
name nvarchar(50)
Come dire a hibernate di passare varchar per la ricerca per codice?
Nella stringa di mapping Hibernate è mappata nvarchar e produce query come:
Select code, name From table where code=N'AAA' (instead of code='AAA')
Questo è molto grave come provoca indice di scansione invece dell'indice operazione di ricerca (scansione di tutti nodi indice anziché direttamente andare richiesto)
Poiché il codice viene utilizzato in milioni di righe nonché in diversi indici e chiavi esterne, la modifica da varchar a nvarchar causerà un peggioramento delle prestazioni (più operazioni di I/O poiché nvarchar utilizza il doppio di spazio rispetto a varchar).
C'è un modo per indicare che l'ibernazione esegue il mapping in base al tipo di database, non al tipo Java?
Grazie
Chiedi questa domanda su http://groups.google.com/group/nhusers –
se vuoi ibernare rendere il tuo campo nel database di tipo nvarchar? o qualcos'altro? – Am1rr3zA
Desidero che hibernate passi il parametro varchar al tipo varchar e il parametro nvarchar al tipo nvarchar. es.Inserisci nella tabella (varcharCol, nvarcharCol) Valori ('aaa', N'aaa ') – Niikola