Mi opinión es que si partimos del hecho de que las palabras reservadas son "reservadas" y no hay que usarlas, entiendo que el comportamiento por defecto debería ser el que es. Por otro lado si el valor por defecto fuera <property name="hbm2ddl.keywords">auto-quote</property> tampoco lo vería mal.
Lo importante es que se pueda solucionar, y se puede. On 9 dic, 20:22, "Pedro J. Molina" <[email protected]> wrote: > Buenos dias a todos: > > En mi pruebas con NHibernate describi un error en mi código que en > principio atribuí a un error en NH (http://216.121.112.228/browse/NH-2453 > ). > > Básicamente el resumen es que tenia una columna en tabla llamada Key > que una tabla. Donde Key es una palabra reservada para SQL Server y > por tanto las consultas correctas SQL deben escapar correctamente Key > del siguiente modo por ejempo: aliasDeTabla.[Key] cuando por > contra, por defecto, NH me estaba generando: aliasDeTabla.Key > > Con la amable y pronta ayuda de Fabio Maulo, me indico que realmente > existe una manera de configurar NH para que funcione de este modo > empleando el parámetro: <property name="hbm2ddl.keywords">auto-quote</ > property> > > Hasta aqui asunto resuelto. Falsa alarma de bug y mi código > funcionando de nuevo. > > Sobre este tema les expongo una reflexión que adelantaba a Fabio y que > le pareció conveniente traer aquí para compartirla: > > Como describe Fabio en su > blog:http://fabiomaulo.blogspot.com/2009/06/auto-quote-tablecolumn-names.html > el valor por defecto para la propiedad hbm2ddl.keywords es: <property > name="hbm2ddl.keywords">keywords</property> > > ¿Tendria sentido marcar el valor por defecto en NH a auto-quote? > <property name="hbm2ddl.keywords">auto-quote</property> > > Lo planteo porque como bien dice Fabio, un ORM debe ocultar los > detalles de persistencia y facilitar, en la medida de lo posible, el > cambio de la capa de persistencia de un motor relacional a otro con > cambios mínimos en el código y/o mapeos. > En este contexto, las palabras claves son arbitrariamente > seleccionadas por cada fabricante del motor relacional y se reservan > todo aquello que creen necesitar para un futuro. > > La alternativa de hacer emerger la protección (o quotes) en el fichero > de mapping no me parece lo más limpio, por el mismo motivo recién > comentado (lo que es palabra reservada en un motor, o dialecto de SQL > no tiene porque serlo en otro diferente). > > Bajo este punto de vista planteo: ¿tendría sentido que auto-quote > fuera el valor por defecto para hbm2ddl.keywords? > > Seguro que hay otros pros/contras sobre este tema cuando se estableció > el valor por defecto, pero queria preguntar que opinan al respecto. > > Gracias de antemano, > > Pedro J. Molina -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
