jpa@Query左连接返回Object

1、数据库简略设计

CUSTOM表:
在这里插入图片描述
在这里插入图片描述
SERVICE_SHEET表:
SERVICE_SHEET表
在这里插入图片描述

2、SQL语句设计

SELECT DISTINCT
	a.CUSTOM_NAME,
	a.LATITUDE,
	a.LONGITUDE,
	COUNT( b.CUSTOMER_ID )  AS SUM_OF_SERVICE
FROM  
	CUSTOM a
LEFT JOIN
	SERVICE_SHEET b
ON
	DISTANCE ( 114.42695730.513611, a.LONGITUDE, a.LATITUDE ) < 2 
AND
	a.ID = b.CUSTOMER_ID
GROUP BY
	a.CUSTOM_NAME,
	a.LATITUDE,
	a.LONGITUDE
ORDER BY
	a.CUSTOM_NAME
ASC;

查询结果:
在这里插入图片描述

3、实体类定义

Custom.java

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Custom {
   
    @Id
    private Integer ID;
    private Float CUSTOM_NO;
    private Float LONGITUDE;
    private
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下方法在Spring Boot JPA @Query返回Map: 1. 创建一个接口来定义返回的Map: ``` public interface MyMap { Long getId(); String getName(); Integer getAge(); } ``` 2. 在@Repository中使用@Query注释查询: ``` @Repository public interface MyRepository extends JpaRepository<MyEntity, Long> { @Query("SELECT new map(e.id as id, e.name as name, e.age as age) from MyEntity e") List<Map<String, Object>> findEntitiesAsMap(); @Query("SELECT new com.example.demo.MyMap(e.id, e.name, e.age) from MyEntity e") List<MyMap> findEntitiesAsMyMap(); } ``` 在这个例子中,我们定义了两个方法,一个返回Map,另一个返回MyMap对象。 3. 在服务中使用MyRepository: ``` @Service public class MyService { @Autowired private MyRepository myRepository; public List<Map<String, Object>> getEntitiesAsMap() { return myRepository.findEntitiesAsMap(); } public List<MyMap> getEntitiesAsMyMap() { return myRepository.findEntitiesAsMyMap(); } } ``` 现在,你可以在你的控制器中调用这些服务方法来获取Map或MyMap对象的列表: ``` @RestController public class MyController { @Autowired private MyService myService; @GetMapping("/entitiesAsMap") public List<Map<String, Object>> getEntitiesAsMap() { return myService.getEntitiesAsMap(); } @GetMapping("/entitiesAsMyMap") public List<MyMap> getEntitiesAsMyMap() { return myService.getEntitiesAsMyMap(); } } ``` 这是一个简单的例子,你可以根据你的需要进行更改和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值