JPA使用原生SQL查询
2019独角兽企业重金招聘Python工程师标准>>>
一、Spring3.1之前版本的方法
import org.springframework.context.ApplicationContext;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import java.util.*;
import javax.persistence.*;public class CustomerCourseDAO extends JpaDaoSupport implements ICustomerCourseDAO {public String findTeacherNameByCourseId(Integer courseid) {String sql = "select concat(c.Given_Name,' ',c.Family_Name) as teachername from customer c,customer_course cc"+ " where c.Customer_ID = cc.Customer_ID and cc.Related_Code = 2 and cc.Course_ID = " + courseid.intValue();try {EntityManagerFactory emf = getJpaTemplate().getEntityManagerFactory();EntityManager newEm = emf.createEntityManager();EntityTransaction newTx = newEm.getTransaction();newTx.begin();List result = newEm.createNativeQuery(sql).getResultList();String teachername = "";if(result.size()==1){teachername = (String)result.get(0);}newEm.getDelegate();newTx.commit();newEm.close();emf.close();return teachername;} catch (RuntimeException re) {logger.error("find Teacher's Name by courseId failed", re);throw re;}}//add by edwin, 2007-11-08 测试通过@SuppressWarnings(value = "unchecked")public List<CustomerCourse> findTeaStuByCourseId(Integer id) {String sql = "select model.* from customer_course model " + "where model.Related_Code = 1 and model.Course_ID = " + id.intValue();try {EntityManagerFactory emf = getJpaTemplate().getEntityManagerFactory();EntityManager newEm = emf.createEntityManager();EntityTransaction newTx = newEm.getTransaction();newTx.begin();@SuppressWarnings(value = "unchecked")List<CustomerCourse> stu = newEm.createNativeQuery(sql,CustomerCourse.class).getResultList();newTx.commit();newEm.close();emf.close();return stu;} catch (RuntimeException re) {logger.error("find Teacher's students by courseId failed", re);throw re;}}}
二、Spring 3.1之后版本方法
1、在spring配置文件中配置entityManagerFactory
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="dataSource" ref="dataSource"/><property name="packagesToScan" value="com.alimama.prism.model"/><property name="jpaVendorAdapter"><bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/></property><property name="jpaProperties"><props><prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop><!--<prop key="hibernate.show_sql">true</prop>--><!--<prop key="hibernate.format_sql">true</prop>--><!--<prop key="hibernate.use_sql_comments">true</prop>--></props></property></bean>
2、以下测试方法测试通过
@Override@SuppressWarnings("unchecked")public List<TaskModel> findByTaskName(String name) {EntityManagerFactory emf= (EntityManagerFactory) SpringUtils.getBean("entityManagerFactory"); //SpringUtils需要自己指定了....EntityManager em=emf.createEntityManager(); String querysql="select * from prism_task where taskname=?"; Query query=em.createNativeQuery(querysql); query.setParameter(1, name); List<TaskModel> tasklist=(List<TaskModel>)query.getResultList(); em.close(); return tasklist;}
转载于:https://my.oschina.net/u/2391658/blog/862732
JPA使用原生SQL查询相关推荐
- 使用 JPQL 和原生 SQL 查询 JPA 实体(转)
使用 JPQL 和原生 SQL 查询 JPA 实体(转) 博客分类: EJB3.JPA及其相关 SQL JPA 企业应用 数据结构 C# 作者:Yuli Vasiliev 了解如何利用 Java 持 ...
- jpa 原生sql 查询返回一个实体_JPA查询--使用原生sql 并且把查询结果转为实体对象...
这篇文章主要记录 使用原生sql查询 并且把查询结果转为实体对象, 注意:这儿使用的数据库 是oracle数据库 这儿记录了三种查询:精确查询,模糊查询,分页查询. 1.把原生sql查询的结果转为实体 ...
- Hibernate5.2之原生SQL查询
原文:http://www.cnblogs.com/miller-zou/p/5720048.html 一. 介绍 在上一篇博客中笔者通过代码的形式给各位读者介绍了Hibernate中最重要的检索方 ...
- 【Flask项目】sqlalchemy原生sql查询,返回字典形式数据
在原生sql查询的时候,返回一个list,内部是tuple,他们看似是tuple,实则并不是 而是一个特殊的类型"<class 'sqlalchemy.util._collection ...
- python graphql query返回一组字典数据_Python的sqlalchemy使用原生sql查询如何返回字典形式的数组?...
首先使用一个变量接收你以上的查询结果.这个查询结果是一个list,在这个list中包含着一个或多个tuple,其实这并不是标准的Python tuple,而是一个特殊的类型"",这 ...
- Hibernate原生SQL查询
最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行 ...
- Hibernate使用原生SQL查询
Hibernate使用原生SQL查询 Hibernate提供了原生的SQL语句的查询,通过createSQLQuery(String)和createNativeQuery(String),crea ...
- jpa原生query_Spring Data JPA原生SQL查询
package com.test.cms.dao.repository; import org.springframework.stereotype.Repository; import javax. ...
- jpa原生query_Spring Data Jpa @Query原生SQL
使用Spring Data JPA时,可以使用@Query注解解决表关联查询问题.使用@Query注解可以使用原生SQL.此时,会遇到如何分页,如何动态拼装SQL等问题. 原生SQL 在@Query注 ...
最新文章
- 2022-2028年中国半导体硅片行业深度调研及投资前景预测报告
- java重定向带参数_急 求助重新封装重定向带参数问题
- 混沌分形之逻辑斯蒂(Logistic)映射系统
- leetcode511. 游戏玩法分析 I(SQL)
- 电脑仙人掌机器人作文_满分作文精选细评:致敬奋斗的时光
- 模块电源(二):电感式DC-DC升压器
- 分布式、微服务与集群的区别
- 教学管理系统数据库设计Mysql_教务管理系统数据库设计方案.docx
- 菜鸟教程:零基础HTML入门
- 大学时私藏了哪些工具、网站?在这里共享出来了
- fc安卓模拟器_MAME街机模拟器0.224经典游戏全收藏
- 搭建FTP站点(Windows)
- linux设备i2c优先级,Linux设备之I2C
- 哈尔滨工业大学 计算机系统大作业
- 蓝桥杯单片机备战(四)共阳数码管的静态显示
- linux中如何压缩目录文件,如何在Linux中压缩和解压缩目录及其文件
- 以盒马生鲜为例,如何玩转线上线下电商门店经营模式?
- 程序员为什么害怕低代码?
- AI2(App Inventor 2)离线版服务器网络版(AI伴侣2.47版)
- strcat函数用法的一点看法