JPA 视图查询 SELECT NEW

来源:互联网 发布:淘宝神笔宝贝推荐教程 编辑:程序博客网 时间:2024/06/06 00:36

转自 : http://blog.csdn.net/chaijunkun/article/details/8442406

适应场景: 

1 用SpringJPA框架

2 需要选取多个实体表的字段, 组装成一个类时(例如下面例子中的GoodsSales类是由Order类的数据组成的)


1. DTO 类 GoodsSales

package com.exodus.weistore.goods.data;import java.io.Serializable;public class GoodsSales implements Serializable{private static final long serialVersionUID = 4497500574990765498L; //产品idprivate String goodsId;//产品总销量private Long amount;public GoodsSales(){ };public GoodsSales(String goodsId, long amount) {          this.goodsId = goodsId;          this.amount = amount;      } public String getGoodsId() {return goodsId;}public void setGoodsId(String goodsId) {this.goodsId = goodsId;}public Long getAmount() {return amount;}public void setAmount(Long amount) {this.amount = amount;}}



2. repository  实例代码

<span style="font-size:14px;">package com.exodus.weistore.goods.repository;import java.util.ArrayList;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import org.springframework.data.jpa.repository.Query;import org.springframework.stereotype.Repository;import com.exodus.weistore.goods.data.GoodsSales;import com.exodus.weistore.goods.model.Goods;@Repositorypublic interface GoodsRepositoryextends JpaRepository<Goods, String>, JpaSpecificationExecutor<Goods>{@Query("SELECT NEW com.exodus.weistore.goods.data.GoodsSales(o.goodsId, SUM(o.amount)) "+ "FROM Order o "+ "WHERE o.state = Order$OrderState.completion AND o.sellerId = ?1 AND o.goodsId IN (?2) "+ "GROUP BY o.goodsId")</span><h1><span style="font-size:14px;">public ArrayList<GoodsSales> getGoodsSales(Integer audienceId, String[] goodsIds);</span></h1><span style="font-size:14px;">}</span>




0 0
原创粉丝点击