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查询相关推荐

  1. 使用 JPQL 和原生 SQL 查询 JPA 实体(转)

    使用 JPQL 和原生 SQL 查询 JPA 实体(转) 博客分类: EJB3.JPA及其相关 SQL JPA 企业应用 数据结构 C#  作者:Yuli Vasiliev 了解如何利用 Java 持 ...

  2. jpa 原生sql 查询返回一个实体_JPA查询--使用原生sql 并且把查询结果转为实体对象...

    这篇文章主要记录 使用原生sql查询 并且把查询结果转为实体对象, 注意:这儿使用的数据库 是oracle数据库 这儿记录了三种查询:精确查询,模糊查询,分页查询. 1.把原生sql查询的结果转为实体 ...

  3. Hibernate5.2之原生SQL查询

    原文:http://www.cnblogs.com/miller-zou/p/5720048.html 一. 介绍  在上一篇博客中笔者通过代码的形式给各位读者介绍了Hibernate中最重要的检索方 ...

  4. 【Flask项目】sqlalchemy原生sql查询,返回字典形式数据

    在原生sql查询的时候,返回一个list,内部是tuple,他们看似是tuple,实则并不是 而是一个特殊的类型"<class 'sqlalchemy.util._collection ...

  5. python graphql query返回一组字典数据_Python的sqlalchemy使用原生sql查询如何返回字典形式的数组?...

    首先使用一个变量接收你以上的查询结果.这个查询结果是一个list,在这个list中包含着一个或多个tuple,其实这并不是标准的Python tuple,而是一个特殊的类型"",这 ...

  6. Hibernate原生SQL查询

    最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行 ...

  7. Hibernate使用原生SQL查询

    Hibernate使用原生SQL查询   Hibernate提供了原生的SQL语句的查询,通过createSQLQuery(String)和createNativeQuery(String),crea ...

  8. jpa原生query_Spring Data JPA原生SQL查询

    package com.test.cms.dao.repository; import org.springframework.stereotype.Repository; import javax. ...

  9. jpa原生query_Spring Data Jpa @Query原生SQL

    使用Spring Data JPA时,可以使用@Query注解解决表关联查询问题.使用@Query注解可以使用原生SQL.此时,会遇到如何分页,如何动态拼装SQL等问题. 原生SQL 在@Query注 ...

最新文章

  1. 2022-2028年中国半导体硅片行业深度调研及投资前景预测报告
  2. java重定向带参数_急 求助重新封装重定向带参数问题
  3. 混沌分形之逻辑斯蒂(Logistic)映射系统
  4. leetcode511. 游戏玩法分析 I(SQL)
  5. 电脑仙人掌机器人作文_满分作文精选细评:致敬奋斗的时光
  6. 模块电源(二):电感式DC-DC升压器
  7. 分布式、微服务与集群的区别
  8. 教学管理系统数据库设计Mysql_教务管理系统数据库设计方案.docx
  9. 菜鸟教程:零基础HTML入门
  10. 大学时私藏了哪些工具、网站?在这里共享出来了
  11. fc安卓模拟器_MAME街机模拟器0.224经典游戏全收藏
  12. 搭建FTP站点(Windows)
  13. linux设备i2c优先级,Linux设备之I2C
  14. 哈尔滨工业大学 计算机系统大作业
  15. 蓝桥杯单片机备战(四)共阳数码管的静态显示
  16. linux中如何压缩目录文件,如何在Linux中压缩和解压缩目录及其文件
  17. 以盒马生鲜为例,如何玩转线上线下电商门店经营模式?
  18. 程序员为什么害怕低代码?
  19. AI2(App Inventor 2)离线版服务器网络版(AI伴侣2.47版)
  20. strcat函数用法的一点看法

热门文章

  1. 数据算法——Spark的TopN实现
  2. 【Android View事件分发机制】原理
  3. (0076)iOS开发之UIWebView嵌套直播平台(不涉及播放器技术的开发)
  4. mysql 全面知识点_Mysql知识点整理
  5. 函数的初识;函数的返回值;函数的传参
  6. git没有changId解决方法
  7. qsort函数的用法
  8. 设置sql*plus的sqlprompt
  9. 《王福朋petshop4.0视频教程》新浪视频(高清)
  10. 从前端角度看网页渲染慢的原理及解决方案