jpa原生query_JPA使用原生SQL查询

一、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 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 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

false

update

org.hibernate.dialect.MySQL5InnoDBDialect

2、以下测试方法测试通过

@Override

@SuppressWarnings("unchecked")

public List 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 tasklist=(List)query.getResultList();

em.close();

return tasklist;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值