成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用JPA查詢數(shù)據(jù)庫遇到的兩個問題

madthumb / 956人閱讀

摘要:使用的在使用方法時,這個方法進行了重載,我經(jīng)常使用的兩個方法分別為這兩個方法的區(qū)別是第二個方法查詢之后可以強轉(zhuǎn)為相應(yīng)的類傳入的例如而如果使用第一個方法,將無法強轉(zhuǎn),這時候查詢得到的數(shù)據(jù)為的,例如注其實這個查詢可以通過配置映射關(guān)系簡化第二個問

使用EntityManager的createNativeQuery

在使用createNativeQuery方法時,這個方法進行了重載,我經(jīng)常使用的兩個方法分別為

createNativeQuery(String sql)

createNativeQuery(String sql,Class aClass)

這兩個方法的區(qū)別是第二個方法查詢之后可以強轉(zhuǎn)為相應(yīng)的類(傳入的class),例如:

Query query = em.createNativeQuery("select * from trainingclass 
    where id in (select distinct classid from classunsubscribe where traineeId=""+traineeId+"")"
    ,TrainingClass.class);
List classes = query.getResultList();

而如果使用第一個方法,將無法強轉(zhuǎn),這時候查詢得到的數(shù)據(jù)為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();
List results = 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;

(注:其實這個查詢可以通過配置映射關(guān)系簡化)

第二個問題

在使用原生的sql語句進行查詢時,如果查詢語句設(shè)計多張表,而多張表又有取名相同的字段,則需要為相同的字段取一個別名,如

select t.*,c.date reserveDate,c.isLearned from trainingclass t, classreserve c

這邊因為trainingclass表中有屬性和classreserve 表中有一個取名相同的字段date,所以需要給其中一個“重命名”,否則會出現(xiàn)
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException錯誤

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66775.html

相關(guān)文章

  • 使用SpringData+JPA@Query注解完成動態(tài)條件分頁查詢

    摘要:正文公司使用的是現(xiàn)在流行的,數(shù)據(jù)庫方面使用的是。這幾天用的最多的就是用進行查詢了,簡單的查詢很簡單,網(wǎng)上查一查就有一堆方案,直到遇到分頁查詢的時候出了問題。 寫作原因 之前在學(xué)校都是做前端,但是最后找了個Java后端的工作,框架什么的基本沒用過,所以工作中遇到了很多問題,所以決定記錄下來工作中遇到的問題,記錄成長的點滴。 正文 公司使用的是現(xiàn)在流行的SpringBoot,數(shù)據(jù)庫方面使用...

    melody_lql 評論0 收藏0
  • Spring Boot+SQL/JPA實戰(zhàn)悲觀鎖和樂觀鎖

    摘要:所以悲觀鎖是限制其他線程,而樂觀鎖是限制自己,雖然他的名字有鎖,但是實際上不算上鎖,只是在最后操作的時候再判斷具體怎么操作。悲觀鎖和樂觀鎖比較悲觀鎖適合寫多讀少的場景。 最近在公司的業(yè)務(wù)上遇到了并發(fā)的問題,并且還是很常見的并發(fā)問題,算是低級的失誤了。由于公司業(yè)務(wù)相對比較復(fù)雜且不適合公開,在此用一個很常見的業(yè)務(wù)來還原一下場景,同時介紹悲觀鎖和樂觀鎖是如何解決這類并發(fā)問題的。 公司業(yè)務(wù)就是...

    Keven 評論0 收藏0
  • JPA多表復(fù)雜查詢

    摘要:我將舉幾個栗子,來詳細(xì)的說一下我自己在使用多表復(fù)雜查詢的場景和想法。名字手機號這是一個單表的多條件復(fù)雜查詢,由于是在幾個屬性中進行篩選,其中的屬性的個數(shù)不知道有多少個,所以只需要利用查詢就可以很方便的實現(xiàn)這個需求。 最近工作中由于要求只能用hibernate+jpa 與數(shù)據(jù)庫進行交互,在簡單查詢中,jpa繼承CrudRepository接口 ,然后利用jpa的方法命名規(guī)范進行jpql查...

    chaos_G 評論0 收藏0

發(fā)表評論

0條評論

madthumb

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<