一尘不染

使用本机查询从Spring Data返回自定义对象

spring-boot

我的问题是基于另一个帖子。如何使用本机查询实现相同目的?本机查询不允许JPQL,因此也不允许新实例。

我的POJO。

class Coordinates {

    private final BigDecimal latitude
    private final BigDecimal longitude

    ...
}

我的数据库表包含城市周长的坐标,因此共有三列:city_name,纬度和经度。每个城市都包含许多(实际上是LOTS)周界坐标,这些坐标将用于在Google地图中建立阴影区域。

我打算在该表上构建一个简单的本机查询,该查询应返回坐标列表。


阅读 340

收藏
2020-05-30

共1个答案

一尘不染

在另一个帖子上找到了答案。基本上,我使用的SqlResultSetMapping一起ConstructorResult(没有其他办法解决)有特别注意上提后的接受的答案评论:您需要将添加@NamedNativeQuery注释所使用的实体interface
与前面加上实体的名称.,否则它赢得不行

例:

@Entity
@Table(name = "grupo_setorial")
@SqlResultSetMapping(
        name = "mapeamentoDeQuadrantes",
        classes = {
                @ConstructorResult(
                        targetClass = Coordenada.class,
                        columns = {
                                @ColumnResult(name = "latitude"),
                                @ColumnResult(name = "longitude")
                        }
                )
        }
)
@NamedNativeQuery(
        name = "GrupoCensitario.obterPerimetroDosSetores",
        query = "SELECT latitude as latitude, longitude as longitude FROM coordenadas where id_setor IN (:setores)",
        resultSetMapping = "mapeamentoDeQuadrantes"
)
public class GrupoCensitario {
2020-05-30