sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo asignar una consulta nativa a un POJO cuando no tengo ninguna entidad en mi proyecto?

De hecho, encontré la respuesta que estaba buscando :

Puedo definir @SqlResultSetMapping el comportamiento de usando XML en orm.xml, por lo que esta definición:

@SqlResultSetMapping(
        name = "BookValueMapping",
        classes = @ConstructorResult(
                targetClass = BookValue.class,
                columns = {
                    @ColumnResult(name = "id", type = Long.class),
                    @ColumnResult(name = "title"),
                    @ColumnResult(name = "version", type = Long.class),
                    @ColumnResult(name = "authorName")}))

Se definiría en XML así:

<sql-result-set-mapping name="BookValueMappingXml">
    <constructor-result target-class="org.thoughts.on.java.jpa.value.BookValue">
        <column name="id" class="java.lang.Long"/>
        <column name="title"/>
        <column name="version" class="java.lang.Long"/>
        <column name="authorName"/>
    </constructor-result>
</sql-result-set-mapping>

Permitiéndome definirlo sin necesidad de una entidad.