JPA框架下使用原生SQL返回自定义结构数据

本文介绍了如何在JPA+Spring Boot项目中利用原生SQL执行复杂关联查询,并将结果映射到自定义的非管理Entity。通过创建专用的查询结果Entity,可以成功处理EntityManager的createNativeQuery返回的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目使用框架JPA+Spring Boot, 想使用原生sql实现一个复杂的关联查询,返回特定的数据结果;

因EntityManager中createNativeQuery方法直接返回的需是JPA管理的Entity, 固需自定义一个只用于映射查询结果的Entity;

使用方式如下: 

首先自定义查询结果的Entity:

import javax.persistence.*;

@SqlResultSetMapping(name = "houseResponseResultMapping", entities={
        @EntityResult(entityClass=HouseQueryResult.class,fields={
                @FieldResult(name="id", column="ID"),
                @FieldResult(name="houseAddress", column="HouseAddress"),
                @FieldResult(name="houseBuilding", column="HouseBuilding"),
                @FieldResult(name="houseUnit", column="HouseUnit"),
                @FieldResult(name="houseFloor", column="houseFloor"),
                @FieldResult(name="houseNumber", column="HouseNumber")
//                @FieldResult(name="personLiveType", column="belongedPlace")
        })
})
@Entity
public class HouseQueryResult {

  @Id
  private Long id;

  public HouseQueryRe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值