JPA 中 sql 预编译 -- EntityManager 使用 预编译
生活随笔
收集整理的這篇文章主要介紹了
JPA 中 sql 预编译 -- EntityManager 使用 预编译
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
實現方式 :
1. 注入em:
@PersistenceContextprivate EntityManager entityManager;注入方式 2:
@PersistenceUnitprivate EntityManagerFactory emf;?
2. 得到em:
private EntityManager getEm() {return this.entityManager;}對應第2種注入方式:
/*** 得EntityManager** @return*/private EntityManager getEm() {return emf.createEntityManager();}3.預編譯寫法:
EntityManager em = getEm();String getAllTask = "SELECT ID,DEPARTMENT,WBS,CODE,NAME,PARENT_CODE FROM GAEI_WORK_TASK" +" WHERE WBS = ? AND DEPARTMENT = ? ";Query query = em.createNativeQuery(getAllTask);query.setParameter(1, wbs);query.setParameter(2, ((Department) userService.getSecondDepartmentByUserId(uid)).getId());List<Object> taskList = query.getResultList();4. 附上原本查詢寫法:( 建議參數都改為走預編譯 )
String sql = " SELECT" +" pro.id," +" pro.CODE," +" pro.PROJECT_NAME," +" pro.PROJECT_DIRECTOR_NO 'PROJECT_DIRECTOR_NO.id'," +" pro.source," +" gaei_pro.WBS," +" app_user.fullname 'PROJECT_DIRECTOR_NO.fields'," +" gaei_pro.STATUS" +" FROM" +" GAEI_PROJECT pro" +" LEFT JOIN appbricks_user app_user ON gaei_pro.PROJECT_DIRECTOR_NO = app_user.id" +" WHERE app_user.id = '" + approveId + "'" +" ORDER BY pro.CODE ASC";List<Object> resultList = getResultList(em, sql);?
// 執行查詢public static <T> List<T> getResultList(EntityManager em, String sql) {List<T> resultList = em.createNativeQuery(sql).getResultList();return resultList;}
?
總結
以上是生活随笔為你收集整理的JPA 中 sql 预编译 -- EntityManager 使用 预编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机病毒的防范(一)计算机病毒的分类
- 下一篇: 什么是 FreeMarker