Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据返回列表中的重构_Java_Spring_Spring Data Jpa - Fatal编程技术网

Java Spring数据返回列表中的重构

Java Spring数据返回列表中的重构,java,spring,spring-data-jpa,Java,Spring,Spring Data Jpa,我一直在legacy project中工作,该项目有以下几种存储库方法: @Query(value = "SELECT " + " i.uf, " + " i.cidade " + "FROM Imovel AS i " + "WHERE i.ativo = 'Sim' AND " + " EXISTS (SELECT 1 " + " FROM ImovelFo

我一直在legacy project中工作,该项目有以下几种存储库方法:

@Query(value = "SELECT "
        + "  i.uf, "
        + "  i.cidade "
        + "FROM Imovel AS i "
        + "WHERE i.ativo = 'Sim' AND "
        + "      EXISTS (SELECT 1 "
        + "              FROM ImovelFoto AS f "
        + "              WHERE f.codigoImovel = i.codigo)"
        + "GROUP BY i.uf, i.cidade", nativeQuery = true)    
List<Object[]> findUFCidade();
public class LocalizacaoAgrupadaDTO {

    private String uf;
    private String cidade;

    // Getters e Setters omitidos
}
建议更改JPQL的nativeQuery

但是,由于不同的语法和实体映射,此更改增加了额外的复杂性,因为此select子句是一个与实体没有直接关系的groupping

重构Spring数据JPA的最佳方法是什么

我应该一直尝试使用JPQL还是可以使用nativeQuery???

创建一个,然后使用


您需要从EntityManager的hibernate中获取对象会话。

使用Spring数据JPA重构该会话并不是最好的方法。只有一系列的选项可供选择

我认为最理想/最现代的选择,尽管可能是最耗时的,是切换到使用正确映射的对象和JPQL

不过,您的结果不需要是@Entity对象本身,您可以使用诸如SELECT new LOCATIZAOAGRUPADATTOE.uf、e.cidade FROM EntityObject e。。。