Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mapper une requête native à un POJO, lorsque je n'ai aucune entité sur mon projet ?

En fait, j'ai trouvé la réponse que je cherchais :

Je peux définir @SqlResultSetMapping utilise XML dans orm.xml, donc cette définition :

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

Serait défini en XML comme ceci :

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

Me permettant de le définir sans avoir besoin d'une entité.