1. 程式人生 > >hibernate實現查詢某實體的某個欄位的多個值的對應實體列表

hibernate實現查詢某實體的某個欄位的多個值的對應實體列表

在使用hibernate和資料庫互動時,可以是使用hibernate的session的各種操作資料庫方法,在實際使用中也常常結合hbm.xml檔案裡寫好的query執行塊,再通過setParameter方式設定引數後執行查詢獲取結果。

其中經常使用的一個場景----hibernate實現查詢某實體的某個欄位的多個值的HQL---- ,總是忘記怎麼寫:

解決辦法:

hibernate實現查詢某個欄位的多個值的HQL寫法:

<!--查詢符合建立時間的多個使用者id的使用者列表-->
<query name="FetchListInUserTable">
        SELECT *
        FROM UserTable user
        where user.id in :ids
        and user.createdate >= TIMESTAMP(:bd)
        and user.createdate <= TIMESTAMP(:ed)
</query>

對應的Dao層類似這樣:

Query query = session.getNamedQuery("FetchListInUserTable");
query.setParameterList("ids", userIds.toArray()) ;//物件陣列 存放使用者id的陣列 注意是用setParameterList
List<User> modelStatisticsInfoList = query.setParameter("bd", dateSpan.getBegin())
        .setParameter("ed", dateSpan.getEnd()).list();
Ok, 就這樣,下次就會用了,不用再查閱了。

相關推薦

mysql一個關聯另一張表

    A表的id欄位是以'1,2,3,4,5'...這樣的形式存的,它關聯字典表B的id欄位,此時需求是要查出name   SQL: SELECT a.id, ( SELECT GRO

Oracle-update同時更新

--建立表A,B: create table CUX_TEST_TABLE_A (a1 varchar2(240),a2 varchar2(240),a3 varchar2(240)); create table CUX_TEST_TABLE_B (b1 varchar2(2

oracle 同時更新(update)

--建立表A,B: create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33)); create table B (b1 varchar2(33),b2 varchar2(33),b3 varchar2(33

hibernate實現查詢實體某個對應實體列表

在使用hibernate和資料庫互動時,可以是使用hibernate的session的各種操作資料庫方法,在實際使用中也常常結合hbm.xml檔案裡寫好的query執行塊,再通過setParameter方式設定引數後執行查詢獲取結果。其中經常使用的一個場景----hibern

es:實現查詢某個為固定,另一個必須不能存在

要求:查詢出 positionName為空,hasJobRequest為1的資料   也可以嘗試用must ,must_not ,exist: {   "query": {     

mysql查詢json的某個

SELECT json_extract(欄位名,'$.json結構') FROM 表名; 如果json裡有雙引號,那這樣取出來的資料也帶雙引號,要去掉就使用REPLACE函式 例如: ps_push_d

Hibernate SQL查詢時有重名出現的問題

Hibernate 執行資料庫操作語句時會自動為欄位取別名。 問題: SELECT a.name,ec.name resourcesName FROM eam_alert a,eam_resource ec WHERE a.resource_id=ec.id 使用jdbc

java 查詢資料庫中 某個是否已存在

String url = select  count(*) from  user where user_email = ?; PreparedStatement  pstm =  Connection|.preparedStatement (url); ResuleSet

TP 查詢一條件 並 排序

例: SELECT `content` FROM `app_sms_statistics` WHERE ( mobile= '15300330047' ) ORDER BY time DESC LIMIT 1 $sms_statistics = M('sms_sta

SQL 查詢的結果某個是Null,用預設的代替

如果查詢的結果某個欄位是Null,用預設的值代替。 1、)Sql server中: select   case   when   欄位名1   is   null                                  then   替代值           

基於JavaScript實現Json資料根據某個(json中的某個屬性)進行排序

在實際開發中,有一種需求是當前臺獲取後臺傳過來的json資料時,比如,需要按照json資料中查詢的某個屬性(某個欄位)進行排序,好比,我需要顯示某個事項要按照第1階段、第2階段等等以此類推的顯示。我的json中查詢到資料對應的階段和階段內容,那麼如果我不進行任何處理,那麼顯

無視修飾符,不經過getter函式直接獲取物件的某個的屬性

直接上程式碼: public class ReflectionUtils { /** * 直接讀取物件屬性值, 無視private/protected修飾符, 不經過getter函式. */ public static Object getFieldValue(fin

MySql 查詢同一結果合併到一行顯示 GROUP_CONCAT

先直接給出程式碼: SELECT GROUP_CONCAT(tag) as tags FROM table_tag tt WHERE tt.id in ('1','2') 我們實現合併一個欄位的多個結果用到了mysql 函式 GROUP_CONCAT,

sql語句給某個重新賦

有的時候我們經常需要把sql中的某個欄位換成想要的值 或者說當某個欄位為空值賦值為0或true 寫一個簡單的例子 第一種寫法 select name,ifnull(age,'0'),adress from user 第二種寫法 select name,case when age is 

根據list物件中某個去除重複

現象: 當集合中是物件的時候,因為每個物件都是new出來的,所以無法向字串那樣的去除重複的值。 方法: 1:需要在物件的實體類bean裡面重寫public boolean equals(Objec

【SQL】一條查詢中統計同一不同記錄數量(頻數統計)的寫法

     SQL查詢中經常會碰到需要在一條語句中統計某欄位中不同記錄值的數量,即頻數統計。在看《高效能MySQL》(https://book.douban.com/subject/23008813/)這本“葵花寶典”時看到裡面總結了兩種方法,我在這裡再整理記錄一下:一種是

mysql如何將一個型別串成一個字串?

結論 先說結論,可以使用group_concat group by的組合實現多行變一行,將一個欄位的多個型別串成一個欄位 需求: 如題,一個欄位如電影類別,一部電影可以是多個類別,如喜劇、動作片等,其形式可以是這樣的1::Toy Story (1995)::Animation

SQL筆記二:過濾條件、模糊匹配和兩之間取、去重

上一節簡單的總結了單表查詢和多表查詢,以下給大家總結了查詢語句的結構,如下: SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT... 本節主要總結下常用的條件欄位的匹配問題,最常見的是“=”,如select * from studen

Oracle中取列最大最小的方法

已知表TB的資料如下 SQL> select * from tb;        ID CHINESE    MATH ENGLISH ---------- ---------- ---------- ----------    1001       89       98       87    1

SparkSQL實現查詢Hive表集合中的元素匹配

#encodig=utf-8 # _*_ coding:utf-8 _*_ # Writer : byz # dateTime : 2016-08-3 import sys sys.path.append("/home/mysql1/anqu/python/c