spring jpa查询视图

这段时间在项目中用到的spring+springmvc+hibernate+jpa框架,今天遇到一个问题:如何用原装的jpa查询视图?

使用过jpa的朋友都知道,这是个很难受的问题,我在网上找了半天也没找到简单的答案,大部分都是先建立视图有关的表和类做关联,然后再手写SQL,很是麻烦,而且最要命的是,数据库表不是我建的,表很多,很乱,后来求助大佬,得到一个解决办法:

  1.使用原生SQL解决,即使用EntityManager类,然后用object[]数组接收;

  2.由于做表和实体类的关联,就没有办法在dao层写方法,就无法继承jpa,要不这样就会报错,所以方法是建立在service实现层

  3.具体代码如下:注(由于是内网,所以在网上摘录了这段代码,地址:https://blog.csdn.net/qq_14853889/article/details/84447989

StringBuffer querySql = new StringBuffer("select a.* from art_user a , art_user_authority b where a.id = b.user_id and a.company_id = :companyId " +
                " and b.authority_name =  :authorityName");
        Query query = entityManager.createNativeQuery(querySql.toString() , User.class);
        query.setParameter("companyId" , companyID);
        query.setParameter("authorityName" , authorityName);
        List<User> list = query.getResultList();
}

  其实这样写感觉并不合适,后期有什么合适的解决方案就会替换掉,如果有哪位大佬有什么方法也可以提出来大家一块参考一下。

原文地址:https://www.cnblogs.com/jiushijiang/p/10561410.html

时间: 2024-10-12 16:01:59

spring jpa查询视图的相关文章

Spring Data 系列(二) Spring+JPA入门

通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Connection,Statement等底层SQL对象.可是,Spring对数据库的操作还远远没有结束.本章主要介绍Spring 对JPA的支持. 主要内容 简单介绍JPA Spring Hibernate JPA整合 1.JPA简介 Java Persistence API (JPA),为开发人员提供了一

一篇搞定spring Jpa操作数据库

开始之前你必须在项目配置好数据库,本文使用的spring boot,相比spring,spring boot省去了很多各种对以来组件复杂的配置,直接在pom配置组件,完后会自动帮我们导入组件 <!-- 导入SpringDataJPA的坐标 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa<

EF查询视图只得到一条记录

1.出错结果:数据库表视图有多条数据,在使用EF框架进行查询时却只得到一条数据(注:拦截EF得到的sql语句在数据库进行查询并没有任务问题). 2.出错原因:该视图中没有ID或者主键,EF查询时进行反射默认都是同一条数据. 3.总结:EF框架查询视图时需要注意加入ID或者主键 以上仅是个人简单分析.

Spring Data 系列(三) Spring+JPA(spring-data-commons)

本章是Spring Data系列的第三篇.系列文章,重点不是讲解JPA语法,所以跑开了JPA的很多语法等,重点放在环境搭建,通过对比方式,快速体会Spring 对JPA的强大功能. 准备代码过程中,保持了每个例子的独立性,和简单性,准备的源码包,下载即可使用.如果,对JPA语法想深入研究的话,直接下载在此基础上进行测试. 前言 Spring Data 系列(一) 入门:简单介绍了原生态的SQL使用,以及JdbcTemplate的使用,在这里写SQL的活还需要自己准备. Spring Data 系

Spring JPA 缺少 JAR 引起异常

记录整合中缺少 JAR 文件引起的异常 版本 Spring 3+  Hibernate 4+  JPA 1.Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [

JAVA框架整合(struct+spring+jpa)之utf8mb4

基于mysql数据库整合框架时出现的数据库字符编码的问题. 解决办法:数据库驱动的版本太高,换成低版本的,主要还是你的架包太不是最新版本,出现的兼容性问题. JAVA框架整合(struct+spring+jpa)之utf8mb4,布布扣,bubuko.com

Spring JdbcTemplate 查询分页

1.大家都有的page类 [java] view plaincopy public class CurrentPage<E> { private int pageNumber; private int pagesAvailable; private List<E> pageItems = new ArrayList<E>(); public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber

Spring MVC之视图解析器

Spring MVC提供的视图解析器使用ViewResolver进行视图解析,实现浏览器中渲染模型.ViewResolver能够解析JSP.Velocity模板.FreeMarker模板和XSLT等多种视图. Spring处理视图最重要的两个接口是ViewResolver和View.ViewResolver接口在视图名称和真正的视图之间提供映射关系: 而View接口则处理请求将真正的视图呈现给用户. 1.ViewResolver视图解析器 在Spring MVC控制器中,所有的请求处理方法(Ac

springmvc+spring+jpa(hibernate)+redis+maven配置

废话不多少 项目结构 pom.xml配置例如以下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd