@Subselect映射,子查询,视图.
来源:互联网 发布:搜狐汽车 大数据 编辑:程序博客网 时间:2024/06/05 09:35
package com.cheshangma.merchant.entity;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.Id;import org.hibernate.annotations.Immutable;import org.hibernate.annotations.Subselect;import org.hibernate.annotations.Synchronize;/** * 订单视图实体 * @author yhy * */@Entity//注明这是一个实体类(必须的东西)@Immutable//(网上的说法是注明这个类是不可变的.不过在使用中没有试验过删除了会不会报错,有闲心的可以试试)@Synchronize({"my_order"})//网上的说法是用来注明查询的表,如果表里面的变动了,再次查询就会更新这个视图的数据@Subselect(value=" SELECT COUNT(c.id) wait_pay_order,COUNT(d.id) all_order " + " FROM (SELECT id FROM my_order WHERE create_date >= DATE_FORMAT(NOW(),'%Y-%m-%d') " + " AND create_date <= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL - 1 DAY),'%Y-%m-%d') " + " AND order_status = 1) c RIGHT JOIN (SELECT id FROM my_order " + " WHERE create_date >= DATE_FORMAT(NOW(),'%Y-%m-%d') AND " + " create_date <= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL - 1 DAY),'%Y-%m-%d')) d ON c.id = d.id ")//这个就不用说了.sql语句public class OrderViewEntity implements Serializable{ /** * */ private static final long serialVersionUID = 4821069947331419615L; @Id//这个东西是必须的,不然启动会报错.至于网上的有些说法是要重新定义一个id,亲测不用,随便给查询出来的一个字段加上这个都行(ps:因为我查出来的数据就是一行.所以随便加在哪个字段都行,但其他的不知道,自己去实验吧) private String waitPayOrder; @Column(name="all_order") private String allOrder; //这里有一个坑,注意sql里面的查询结果的别名..一定要注意,经过多次实验报错得出的结论,字段名如果使用了驼峰命名 //(allOrder),这里的sql查询结果别名就一定要用all_order或者字段名就直接写all_order;如果觉得别扭.可以使用 //@Column(name="all_order")(其实使用驼峰命名后,不需要使用@Cloumn来指明,因为数据库默认就是按照all_order这 //种格式来拆分驼峰命名的字段的)如:allOrder字段;当然,字段名和sql结果别名都是全小写(大写)就不会有这个问题了. public String getWaitPayOrder() { return waitPayOrder; } public void setWaitPayOrder(String waitPayOrder) { this.waitPayOrder = waitPayOrder; } public String getAllOrder() { return allOrder; } public void setAllOrder(String allOrder) { this.allOrder = allOrder; }}
视图类就建好了
接下来就是建repository接口类
package com.cheshangma.merchant.repository;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import org.springframework.stereotype.Repository;import com.cheshangma.merchant.entity.OrderViewEntity;/** * 订单视图repository * @author yhy * */@Repository("orderViewRrpository")public interface OrderViewRrpository extends JpaRepository<OrderViewEntity, String>, JpaSpecificationExecutor<OrderViewEntity> {}
查询视图就直接调用 OrderViewRepository.findAll();
@Override @Transactional @Cacheable(value = "com.cheshangma.merchant.service.internal.OrderServiceImpl.searchByDate()") public List<OrderViewEntity> searchByDate() { return orderRepository.findAll(); }
阅读全文
0 0
- @Subselect映射,子查询,视图.
- 数据检索-子查询(subselect)
- hibernate 通过子查询预抓取集合 fetch subselect join (最后遗留疑问)
- 视图和子查询
- 使用Subselect标签构造持久类查询
- Hibernate中子查询(subselect)的使用
- MySQL:内联视图与标量子查询
- 标量子查询和内联视图
- mysql关于视图、子查询、事物
- 开发笔记 视图管理 子视图切图和查询子视图
- 关于Hibernate映射视图后数据查询的方法
- SQL回炉之三:子查询示例,视图
- 标量子查询与内联视图哪个效率高?
- 数据库中的子查询和视图以及存储过程
- mysql创建视图包含子查询的解决方法
- 内联视图、标量子查询、WITH子查询分解的示例
- 内联视图和普通视图的关系以及和子查询的区别
- 级联映射关系的分页查询ManyToMany的notIn子查询subquery实现。notMember 、notExist
- 萌新菜鸡算法笔记No.1 KMP算法 2017/8/25
- NIO篇
- mysql报Segmentation fault错误
- error C2039: 'Release' : is not a member of 'IFile'
- 织梦dede被挂马怎么办?挂马解决方案
- @Subselect映射,子查询,视图.
- iOS之《Effective Objective-C 2.0》读书笔记(21)
- 算法导论第二章算法练习
- 数据库常见优化
- apk打包遇到的问题
- spring整合hibernate
- 索引使用场景
- P1854 花店橱窗布置
- 文字展示多余的用三个点显示