Eso lo podés trabajar con HQL de manera facil http://nhforge.org/blogs/nhibernate/archive/2009/03/13/registering-freetext-or-contains-functions-into-a-nhibernate-dialect.aspx
2012/2/23 frikinside <[email protected]> > Hola, muy buenas. > > Llevo trabajando con NHibernate algún tiempo y recientemente me ha > surgido una duda... > Tengo que encriptar el contenido completo de una base de datos oracle, > y por supuesto, es deseable la posibilidad de hacer likes en las > cadenas de texto aunque estén encriptadas. > > Muy a mi pesar las encriptaciones transparentes no permiten ese like, > ya que se realizan después de la consulta, eso si, son muy cómodas al > definir un usertype de encriptación, es "automático". No obstante, no > suple mis necesidades actuales. Por tanto habría que hacerlo desde la > base de datos, despues de hacer unas pruebas y demás, cree unos > triggers en la base de datos para el insert y update con lo que cuando > recibe un insert, introduzco los datos directamente encriptados, ahora > bien, soy incapaz de crear un trigger para el select, al parecer no se > puede. Con lo que tendría que utilizar sentencias "personalizadas". > Ahora bien, es un proyecto de grandes dimensiones, donde todas las > consultas se realizan con criteria, ninguna con HQL ni SQL, por lo que > no tengo una cadena a la que "meterle mano". Habría algún modo de > decirle a NHibernate que me utilice una función en el campo a la hora > de hacer un select? > > Por ejemplo, si yo hago un Get(Dictionary condiciones) donde > condiciones sea {"Nombre","Pepe"}, la SQL que me crearía nhibernate > (no exactamente, pero se entiende igual) sería: > > Select Nombre FROM tabla WHERE Nombre='Pepe'; > > Para poder realizar likes y desencriptar los datos para hacer las > select desde la base de datos, mis consultas deben llevar el siguiente > formato: > > Select toolkit.decrypt(Nombre) FROM tabla WHERE > tollkit.decrypt(Nombre) = 'Pepe'; > > Por lo que me pregunto si hay algún modo con NHibernate (que no Fluent > NHibernate) de indicarle mediante criteria que el nombre de la columna > debe de llevar el llamamiento a dicho procedimiento? Es decir, se > puede indicarle a NHIbernate que "ColumName" = > "toolkit.decrypt(ColumName)" para las select? > > GRACIAS de antemano. > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Dario Quintana -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
