Hibernate中用hql查詢部分欄位
在hibernate中,用hql語句查詢實體類,採用list方法的返回結果為一個List,該List中封裝的物件分為以下三種情況:
1.查詢全部欄位的情況下,如"from 實體類",list中封裝的物件為實體類本身,各屬性都將得到填充。
2.只查詢一個欄位,預設情況下,list中封裝的是Object物件。
3.查詢兩個或兩個以上的欄位,預設情況下,list中封裝的是Object[],長度與所查詢的欄位數一致。
對於後兩種情況,用標籤遍歷時不太方便,因為無法直接轉換成實體類的物件。比較簡單的解決方法是:
在hql中使用 select new 包名.類名(屬性1,屬性2……) from 實體類,同時在實體類中新增帶參的構造方法,引數的個數和順序與(屬性1,屬性2……) 保持一致,這樣我們得到的list中存放的依然是實體類的物件,所查詢到的屬性得到了填充,使用起來更為方便。
相關推薦
Hibernate中用hql查詢部分欄位
在hibernate中,用hql語句查詢實體類,採用list方法的返回結果為一個List,該List中封裝的物件分為以下三種情況: 1.查詢全部欄位的情況下,如"from 實體類",list中封裝的物件為實體類本身,各屬性都將得到填充。 2.只查詢一個欄位,預設情況下
Hibernate中用hql查詢部分欄位 可解決異常java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
hql查詢單表部分欄位: 在hibernate中,用hql語句查詢實體類,採用list方法的返回結果為一個List,該List中封裝的物件分為以下三種情況: 1.查詢全部欄位的情況下,如"from 實體類",list中封裝的物件為實體類本身,各屬性都將得到填充。 2.只查詢一個欄位,預設情況下,list中封
Hibernate hql 查詢 指定欄位 並獲取結果集
1. 查詢整個對映物件所有欄位 Java程式碼 //直接from查詢出來的是一個對映物件,即:查詢整個對映物件所有欄位
hibernate查詢部分欄位
hibernate查詢 hibernate,使用中會發生這樣的情況,有一個實體如Employee它欄位多而且也關聯了許多實體,這時候當我查詢所有的在職Employee時候,只用到了它的id和name但是卻不得已需要查出所有的欄位。這種查詢很慫而且很慢。 在經
hibernate hql 查詢指定欄位並獲取結果集,多表查詢結果集
原文轉自:http://blog.csdn.net/ljfbest/article/details/7472042在hibernate中,用hql語句查詢實體類,採用list方法的返回結果為一個List,該List中封裝的物件分為以下三種情況: 1.查詢全部欄位的情況下,如
關於mybatis多表查詢只查詢部分欄位,而丟失一整條資料問題
今天在寫一個list資料按某欄位排序問題時遇到了一個問題,就是有很多個數據這個欄位一樣時,只會查出來一個。 如下 頁面,5條資料只查出來3條資料 基礎資訊和接單什麼資訊的分成了2個表,根據接單數排名 select e.engineer_name,
hibernate update 只更新部分欄位的3種方法(轉載)
hibernate 中如果直接使用 Session.update(Object o); 會把這個表中的所有欄位更新一遍。 比如: public class Teacher Test { @Test public void update(){ Session session
hibernate update 只更新部分欄位的3種方法
Hibernate 中如果直接使用 Session.update(Object o); 會把這個表中的所有欄位更新一遍。 比如: public class TeacherTest { @Test public void update(){
Mybatis查詢部分欄位
解決問題:資料庫表裡面很多欄位不太需要,有時只想取到裡面的部分欄位的值,如果重新定義 DTO 會比較麻煩。 BookMapper.xml 檔案中定義如下: <!-- Book全部欄位 --> <resultMap id="BaseRes
hibernate用hql怎麼查詢某個欄位
List results = session.find("select count(*), avg(user.age) from User as user"); ListIterator iterator = results.listIterator(); Object
SpringBoot:SpringData JPA:進階查詢—JPQL/原生SQL查詢、分頁處理、部分欄位對映查詢
上一篇介紹了入門基礎篇SpringDataJPA訪問資料庫。本篇介紹SpringDataJPA進一步的定製化查詢,使用JPQL或者SQL進行查詢、部分欄位對映、分頁等。本文儘量以簡單的建模與程式碼進行展示操作,文章比較長,包含查詢的方方面面。如果能耐心看完這篇文章,你應該能使用SpringDataJ
【轉】mysql查詢根據部分欄位去重
mysql有個關鍵字distinct用來去重的,但是使用時只能放在查詢欄位的最前邊 如: SELECT DISTINCT user_id,age FROM t_user; 若不是放在最前邊,如: SELECT user_id, DISTINCT age FROM t_us
Hibernate關於查詢Timestamp欄位總結
之前在Mysql中做條件查詢遇到點問題,經過科普以後,總結對Timestamp使用遇到的問題,希望對大家有幫助。 1. 如何查詢某一天的資料? 解決的辦法有很多種,我說一種我的做法,算是比較簡單的:我們知道在Mysql中Timestamp欄位的格式為yyyy-MM-dd HH-mm-
springboot +JPA自定義查詢返回部分欄位的返回值型別,用Integer型別作為模糊查詢的條件
今天遇到一個問題記錄下來。 使用的是springboot 2.1.1 jpa連線MySQL資料庫 資料庫表: 我想通過sid的模糊查詢來生成下拉列表。 開始想用jpa提供的一種方法名稱查詢,於是在dao中定義了public List findBySidLike(Integer sid) 方
oracle利用分析函式row_number()over()查詢一張表所有欄位並按照其中部分欄位分組查詢某欄位最大值
先準備資料: deptid :部門id. parent_deptid :deptid 的父級部門,也就是depid 是他的子部門。 create table test_employee (empid int ,deptid int ,parent_deptid int,sa
Hibernate——僅更新部分欄位
介紹兩種方法 1.Annotation設定@Column(updatable=false) 在不需要更新的屬性上新增這個註解。這種方法不靈活,很少使用。 2.使用HQL @Test public
Hibernate使用原生SQL多表查詢時欄位名相同導致查詢資料覆蓋問題解決辦法
系統測試環境: MySQL 5.0 Hibernate 3.3 由於使用了hibernate,雖然使用原生SQL繞過了hibernate自己的封裝,但是還是有些影響,比如欄位別名問題;相同的欄位名經過hibernate查詢會出現前一列覆蓋後一列的情況,這時可以用 方法來
使用hibernate執行原生update更新資料(只更新部分欄位)
事務根據實際情況進行新增,這裡不特殊說明 1、使用update執行更新部分欄位 String sql = " update A set a.grade= :grade,a.gradeType =
hibernate中的update方法只更新部分欄位的方法
Hibernate 中如果直接使用 Session.update(Object o); 會把這個表中的所有欄位更新一遍。 比如: ? 1 2 3 4 5 6 7 8 9 10 11 12 public class Teacher
Spring data jpa高階查詢,部分欄位查詢,過濾查詢,空字元過濾
@PersistenceContext private EntityManager em;String hql = "select new WorkflowTask(taskId,v