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

Responder a