摘要:使用的在使用方法時,這個方法進行了重載,我經常使用的兩個方法分別為這兩個方法的區別是第二個方法查詢之后可以強轉為相應的類傳入的例如而如果使用第一個方法,將無法強轉,這時候查詢得到的數據為的,例如注其實這個查詢可以通過配置映射關系簡化第二個問
使用EntityManager的createNativeQuery
在使用createNativeQuery方法時,這個方法進行了重載,我經常使用的兩個方法分別為
createNativeQuery(String sql)
createNativeQuery(String sql,Class
這兩個方法的區別是第二個方法查詢之后可以強轉為相應的類(傳入的class),例如:
Query query = em.createNativeQuery("select * from trainingclass where id in (select distinct classid from classunsubscribe where traineeId=""+traineeId+"")" ,TrainingClass.class); Listclasses = query.getResultList();
而如果使用第一個方法,將無法強轉,這時候查詢得到的數據為object[]的list,例如:
Query query = em.createNativeQuery( "select t.*,c.date reserveDate,c.isLearned from trainingclass t, classreserve c where t.id=c.classid AND t.id in" + "(select distinct classid from classreserve c1 where c1.traineeId=""+traineeId+"")"); List classes = query.getResultList(); Listresults = new ArrayList<>(classes.size()); for (int i = 0; i < classes.size(); i++) { Object[] obj = (Object[]) classes.get(i); ReserveStatistics temp = new ReserveStatistics((int)obj[0],String.valueOf(obj[1]), String.valueOf(obj[2]),String.valueOf(obj[3]),String.valueOf(obj[4]), (double)obj[5],String.valueOf(obj[6]),String.valueOf(obj[8]),(int)obj[9]); results.add(temp); } return results;
(注:其實這個查詢可以通過配置映射關系簡化)
第二個問題在使用原生的sql語句進行查詢時,如果查詢語句設計多張表,而多張表又有取名相同的字段,則需要為相同的字段取一個別名,如
select t.*,c.date reserveDate,c.isLearned from trainingclass t, classreserve c
這邊因為trainingclass表中有屬性和classreserve 表中有一個取名相同的字段date,所以需要給其中一個“重命名”,否則會出現
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException錯誤
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66775.html
摘要:正文公司使用的是現在流行的,數據庫方面使用的是。這幾天用的最多的就是用進行查詢了,簡單的查詢很簡單,網上查一查就有一堆方案,直到遇到分頁查詢的時候出了問題。 寫作原因 之前在學校都是做前端,但是最后找了個Java后端的工作,框架什么的基本沒用過,所以工作中遇到了很多問題,所以決定記錄下來工作中遇到的問題,記錄成長的點滴。 正文 公司使用的是現在流行的SpringBoot,數據庫方面使用...
摘要:所以悲觀鎖是限制其他線程,而樂觀鎖是限制自己,雖然他的名字有鎖,但是實際上不算上鎖,只是在最后操作的時候再判斷具體怎么操作。悲觀鎖和樂觀鎖比較悲觀鎖適合寫多讀少的場景。 最近在公司的業務上遇到了并發的問題,并且還是很常見的并發問題,算是低級的失誤了。由于公司業務相對比較復雜且不適合公開,在此用一個很常見的業務來還原一下場景,同時介紹悲觀鎖和樂觀鎖是如何解決這類并發問題的。 公司業務就是...
摘要:我將舉幾個栗子,來詳細的說一下我自己在使用多表復雜查詢的場景和想法。名字手機號這是一個單表的多條件復雜查詢,由于是在幾個屬性中進行篩選,其中的屬性的個數不知道有多少個,所以只需要利用查詢就可以很方便的實現這個需求。 最近工作中由于要求只能用hibernate+jpa 與數據庫進行交互,在簡單查詢中,jpa繼承CrudRepository接口 ,然后利用jpa的方法命名規范進行jpql查...
閱讀 2423·2019-08-29 13:53
閱讀 2507·2019-08-29 11:32
閱讀 3047·2019-08-28 17:51
閱讀 3776·2019-08-26 10:45
閱讀 3492·2019-08-23 17:51
閱讀 2983·2019-08-23 16:56
閱讀 3336·2019-08-23 16:25
閱讀 3085·2019-08-23 14:15