Estoy empezando a entender con JPA en una simple aplicación web de Java que se ejecuta en Glassfish 3 (el proveedor de persistencia es EclipseLink). Hasta el momento, me está gustando (los errores en la interacción netbeans/glassfish aparte) pero hay algo que quiero poder hacer y no estoy seguro de cómo hacerlo.JPA - ¿Establecer propiedad de clase de entidad desde la columna calculada?
Tengo una clase de entidad (Artículo) que está mapeada en una tabla de base de datos (artículo). Estoy tratando de hacer una consulta en la base de datos que devuelve una columna calculada, pero no puedo averiguar cómo configurar una propiedad de la clase Artículo para que la propiedad se llene por el valor de la columna cuando llamo a la consulta.
Si realizo una consulta normal de "selección de id, título, cuerpo del artículo", obtengo una lista de objetos de artículo fina, con las propiedades id, title y body completadas. Esto funciona bien
Sin embargo, si hago el siguiente:
Query q = em.createNativeQuery("select id,title,shorttitle,datestamp,body,true as published, ts_headline(body,q,'ShortWord=0') as headline, type from articles,to_tsquery('english',?) as q where idxfti @@ q order by ts_rank(idxfti,q) desc",Article.class);
(se trata de una búsqueda de texto completo usando tsearch2 en Postgres - es una función-db específica, por lo que estoy usando un NativeQuery)
Usted puedo ver que estoy buscando una columna calculada, llamada título. ¿Cómo agrego una propiedad de título a mi clase de artículo para que se rellene con esta consulta?
Hasta ahora, he intentado configurarlo para que sea @Transient, pero eso acaba siendo nulo todo el tiempo.