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

Responder a