Mysql
 sql >> Database >  >> RDS >> Mysql

Come mappare una query nativa su un POJO, quando non ho alcuna entità nel mio progetto?

In realtà ho trovato la risposta che stavo cercando :

Posso definire @SqlResultSetMapping 's comportamento utilizzando XML in orm.xml, quindi questa definizione:

@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")}))

Sarebbe definito in XML in questo modo:

<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>

Permettendomi di definirlo senza bisogno di un'entità.