hibernate實現表聯查並獲取某個欄位的最大值(隨筆)
最近試用hibernate實現三表連線查詢並分組顯示某個欄位的最大值,在mysql中語句可以執行,改成hql無法執行,遂寫下隨筆以記錄
mysql中查詢,可以查詢到相應的結果
改寫成hql語句
"select o.equipment.equId, o.olderName , e1.power, max(opr.oTime),e1.location from Older o ,Equipment e1 , OperationRecord opr where opr.equipment.equId = o.equipment.equId = e1.equId and e1.equId in(select e2.equId from Equipment e2 where e2.user.userId ="+userId+")group by o.equipment.equId,opr.equipment.equId" ;
執行程式會報如下錯誤:
之前以為是欄位名沒有對應上,仔細檢視,沒有問題,然後又以為是hibernate中需要給函式(max)取別名,依然報錯,經多次嘗試修改,將上面hql紅字部分改寫為藍字標記部分:
"select o.equipment.equId, o.olderName , e1.power, max(opr.oTime),e1.location from Older o ,Equipment e1 , OperationRecord opr where opr.equipment.equId = e1.equId and o.equipment.equId = e1.equId and e1.equId in(select e2.equId from Equipment e2 where e2.user.userId ="+userId+")group by o.equipment.equId,opr.equipment.equId"
然後可以執行顯示如下結果:
遂寫下個人總結:hibernate可能不支援多等號連線,需要將其進行拆分以and連線,純屬個人言論,僅供參考。。。。
相關推薦
hibernate實現表聯查並獲取某個欄位的最大值(隨筆)
最近試用hibernate實現三表連線查詢並分組顯示某個欄位的最大值,在mysql中語句可以執行,改成hql無法執行,遂寫下隨筆以記錄 mysql中查詢,可以查詢到相應的結果 改寫成hql語句 "select o.equipment.equId, o.olderName
mybatis。插入語句如何插入資料庫中某一欄位最大值(純sql實現)
<insert id="inserts"> <selectKey keyProperty="ID" ORDER="BEFORE" resultType="java.lang.I
js把頁面明細行資料多個欄位組成陣列,並獲取某個欄位值最大和其次大的資料賦值到文字框;
要求:前臺新增頁面的明細行中,有列下拉框選擇分類和一列付款金額的輸入框,明細行上面有兩個輸入框,要求在明細行選擇的分類和付款金額中篩選付款金額之和第一高的的分類和金額、第二高的分類和金額自動複製到上面的兩個輸入框中; 思路:迴圈明細表,把所有的明細表的分類和付款金額放到json陣列中,然後迴圈j
hibernate實現查詢某實體的某個欄位的多個值的對應實體列表
在使用hibernate和資料庫互動時,可以是使用hibernate的session的各種操作資料庫方法,在實際使用中也常常結合hbm.xml檔案裡寫好的query執行塊,再通過setParameter方式設定引數後執行查詢獲取結果。其中經常使用的一個場景----hibern
oracle利用分析函式row_number()over()查詢一張表所有欄位並按照其中部分欄位分組查詢某欄位最大值
先準備資料: deptid :部門id. parent_deptid :deptid 的父級部門,也就是depid 是他的子部門。 create table test_employee (empid int ,deptid int ,parent_deptid int,sa
ORACLE 連線某個欄位及分組後取某個欄位最大(最小)等實現方法
1.連線某個欄位 對於表A 我們有B和C兩個欄位 有時候,我們想B相同的,C欄位相連線的值,可以用WM_CONCAT和LISTAGG兩種方法。其中LISTAGG為11g中的新特性。 兩種用法如下: SELECT WM_CONCAT(V.USER_NAME) AS USER_
SQL分組且取每組某個欄位最大或最小值
有個表gz: 要按sku分組,同時取每個sku的stock最大的那條 SQL語句: SELECT * FROM (SELECT * FROM gz ORDER BY stock DESC ) a GROUP BY sku 結果: 如果要最小的
Java中實現對錶中多個欄位的模糊查詢(Oracle)
public UserVO fuzzyQuery(String keyword) { UserVO user=null; ResultSet rs = null; PreparedStatement prep = null; try { String
MySQL之——GROUP BY分組取欄位最大值
出處:http://blog.csdn.net/l1028386804/article/details/54657412 假設有一個業務場景,需要查詢使用者登入記錄資訊,其中表結構如下: [sql] view plain cop
abap取某欄位最大值的方法
1.在表中降序/升序後取出第一行,如SELECT MATNR INTO TABLE @DATA(LT_MAKT) FROM MAKT UP TO 1 ROWS ORDER BY MA
MYSQL之排除重複結果只取欄位最大值
範例:PID相同的記錄只取ID值最大的那一條。 SELECT a.* FROM [mytable] a INNER JOIN (SELECT PID,MAX(ID) as max_id FROM [m
MySql按一個欄位分組並且取另一個欄位最大值的記錄
要求:獲得按table1_id分組,並且age最大的記錄資訊,即2、3、5條 方法一: select * from (select * from table2 order by age desc
oracle 實現表中某個欄位的自動增加(相當於有些資料庫的自增列)
說明:sqlserver 中設定某個列的自動增加是非常容易的,只需要在列後面加上 auto_increment即可,但是oracle在使用sql語句建立表時時不支援這種自增的。 那麼要實現自增列怎麼辦? 三步搞定 --1.建立表----- CREATE TABLE use
Java 合併兩個list並按照某個欄位排序
public static void main(String[] args) { List<ReplyInfo> replyInfos1 = new ArrayList<>(); ReplyInfo r1 = new ReplyInfo();
mysql查詢語句中對欄位內容補位(補零為例)length()函式獲取某個欄位資料長度
mysql查詢語句中對欄位內容補位(補零為例)length()函式獲取某個欄位資料長度 jakehu 2014 年 4 月 10 日 mysql查詢語句中對欄位內容補位(補零為例)length()函式獲取某個欄位資料長度2014-04-
es:實現查詢某個欄位為固定值,另一個欄位必須不能存在
要求:查詢出 positionName為空,hasJobRequest為1的資料 也可以嘗試用must ,must_not ,exist: { "query": {
無視修飾符,不經過getter函式直接獲取物件的某個欄位的屬性值
直接上程式碼: public class ReflectionUtils { /** * 直接讀取物件屬性值, 無視private/protected修飾符, 不經過getter函式. */ public static Object getFieldValue(fin
解析json串,並按照某個欄位排序
本文將為大家介紹json解析並按照某個欄位排序的方法。如果是漢字,轉化為漢語拼音後,按照字典順序排序。 原始json [{"proportionCost":0,"busiName":"aaav","userList":"李雷","allCost":53800,"liuCos
oracle 基礎和管理 如何判斷某個表中是否存在某個欄位?
問題 如何判斷某個表中是否存在某個欄位? 注意:表名和欄位名一定要大寫,否則結果不正確一: 檢查表名:select count(*) from user_TABLES where table_name = 表名(大寫);檢查欄位名:select count(*) from U
用Hibernate實現領域物件的自定義欄位
在開發企業級業務應用(企業規模)時,客戶往往要求在不修改系統原始碼的情況下對應用物件模型的擴充套件性提供支援。利用可擴充套件域模型可以實現新功能的開發,而不需要額外的精力和成本 應用的使用週期將被延長; 外部因素改變時,系統工作流也可以隨之被修改;已經被部署的應用可以被“設