hibernate 查詢資料全是第一條
今天做一個查詢,查詢的sql 放在資料裡執行,是四條不一樣的資料,可是用hibernate 一查卻全是一樣的.
list中的四個物件,都是一樣的.
這是什麼原因呢?
其實很簡單,因為hibernate配置檔案上,我這個實體的主鍵是ID欄位,而我的檢視,ID並不能作為唯一標識,所以,當hibernate查資料庫的第一條紀錄的時候,就生成了一個
Os4VDemandCert物件,放在持久物件池裡,
當再去查第二條紀錄的時候,hibernate發現第二條紀錄的ID和持久池裡那第一條紀錄的ID是一樣的,所以就不重複生成新的物件了,直接拿持久池裡原有的那個物件放到list中去,第三條紀錄也一樣.
這樣,就導致list中的3個物件都是一樣的結果.
這個跟Override了物件的hashCode和equals方法沒有關係.
要解決上面的問題.可以用JDBC,或者在Hibernate上給物件配置聯合主鍵來避免..
在以後準備寫一個VO來對映資料庫中的檢視的時候,先注意下一檢視是不是有唯一欄位,如果有,就拿能唯一標識一條紀錄的那個欄位來作為主鍵,或許用聯合主鍵.
後面我直接在表裡加了一個主鍵就解決了
相關推薦
hibernate 查詢資料全是第一條
今天做一個查詢,查詢的sql 放在資料裡執行,是四條不一樣的資料,可是用hibernate 一查卻全是一樣的. list中的四個物件,都是一樣的. 這是什麼原因呢? 其實很簡單,因為hibernate配置檔案上,我這個實體的主鍵是ID欄位,而我的檢視,ID並不能作為唯一標識,所
多條重複資料取第一條
使用分析函式row_number() over (partiion by ... order by ...)來進行分組編號,然後取分組標號值為1的記錄即可。目前主流的資料庫都有支援分析函式,很好用。 其中,partition by 是指定按哪些欄位進行分組,這些欄位值相同的
關於hibernate查詢資料時報錯java.lang.StringIndexOutOfBoundsException: String index out of range: 0
今天學習struts2框架,重寫登入頁面,在登入時碰到這個問題,久久不能解決,後來用度娘一查,果斷出結果。 原文地址: 答案如下: 報錯:java.lang.StringIndexOutOfBoundsException: String index out of
關於Class MyBatisPagingItemReader 讀取資料只讀第一條分頁資料就結束了問題
都是單條單表資料進行匯入使用的JdbcPagingItemReader<T>設定分頁引數,就可以分頁讀取。現在匯入資料需要維護層級關係,使用jdbc完全不可以滿足關係 進而選擇MyBatisPagingItemReader<T>, 使用mabatis
Hibernate查詢資料的五種方式
1.導航物件圖查詢:根據已經載入的物件,導航到其他物件。 例如,對於已經載入的Customer物件,呼叫它getOrders().iterator()方法就可以導航到所有關聯的Order物件,假如在關聯級別使用了延遲載入檢索策略,那麼首次執行此方法時,Hibernate
查詢資料限制顯示條數
1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N HQL: from table1 t order by t.createTime desc where rownum<=n 2. INFORMIX SE
Hibernate 查詢資料
Hibernate 檢索方式 類級別檢索:當前物件所有屬性值。例如:Customer自己資料 關聯級別檢索:當前物件關聯物件資料。例如:Customer 關聯 Order 資料 1 檢索概述
Mysql 查詢資料庫最早一條記錄和第一條資料
1.查詢表中最早時間的一條記錄 (1)錯誤的:select a.*,MIN(enter_time) from g2monitor_range_event a; 解析:因為這樣的話只是查詢了資料庫中的第一條記錄,有查詢了最早的時間,這是沒有必然聯絡的。 (2
MYSQL查詢每個分類的第一條資料
name score type 張三 89 1 李四 58 1 王五 80 2 馬六 35 2 周七 95 3 要求查詢結果為: name score type 張三 8
left join ,查詢結果集排序後取第一條資料
最近改一個問題,改sql語句,大概意思是 左關聯 A 表 和 B表, 按照條件查詢後對查詢結果排序後結果集的第一條資料。 原始的SQL: select a.id from A a left join B b on a.id = b. id where a.use
(oracle/mysql)查詢出分組查詢每組的第一條資料
一下是oracle/mysql分組查詢查出每組資料的第一條資料: 表資料: create table tb_name ( column1 int, column2 varchar, column3 int, column4 date ) 查出時間上最新
hibernate 查詢Page 只要有一個字段為null 查出來的整條數據都為null
hibernate 查詢page 只要有一個字段為null 查出來的整條數據都為nullPageable pageable = this.getPageable(queryDto); Page<PrpdExch> page2 = prpdExchDao.findAll(pageable);通過po
mybatis 關聯查詢時,從表只返回第一條記錄解決辦法
bean mod 第一條 solid ews 解決辦法 prop ica 元素 如果兩表聯查,主表和明細表的主鍵都是id的話,明細表的多條只能查詢出來第一條。 造成以上情況可能的
linq中分組查詢而且獲取每個分組中的第一條記錄,數據用於分頁綁定
upd 但是 static groupby 麻煩 asc xxx each request LINQ分組取出第一條數據 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Na
hibernate查詢少量資料緩慢問題
一開始以為是快取問題,後面嘗試發現不對。後查詢,配置連線池,便解決了,但是Tomcat啟動第一次查詢還是很慢 hibernate.cfg.xml新增以下配置: <property name="hibernate.connection.provider_class">org
Hibernate查詢時,資料庫返回多條紀錄,封裝後的物件卻都是一樣的問題
1. 背景 表的設計如下 2.實體類部分如下: public class WdsStRsvrREntity { @Id private String stcdt; private Date ymdhm; 使用jpa的 findByStcd
在hibernate中查詢資料的 session中get 和load的區別:
* 第一點.傳送SQL的時機: * load這個方法採用了一個技術.lazy延遲載入(懶載入).真正使用這個物件的資料的時候.(物件的資料不包括主鍵). * get這個方法是立即檢索.當執行session.get()方法的時候,馬上傳送SQL語句查詢. * 第二點.返回的物件:
Hibernate 利用Criteria一次性分頁查詢資料和總數
拿到SessionFactory建立Criteria物件 Criteria c = session.createCriteria(Case.class); //插入查詢條件 ... //計算總數 c.set
除了vim, 還有哪些常用的牛逼的編輯器。 自行查詢資料, 調研除了gcc, 還有哪些常用的牛逼的編譯器,為什麼除錯的時候需要編譯選項中新增 -g在Linux下實現進度條程式
除了vim, 還有哪些常用的牛逼的編輯器, 並能夠橫向對比編輯器之間的區別和優缺點。 首先先有一個概念IDE(整合開發環境),厲害的有vs等等。vim以及Emacs就向著這個方向發展。為了實現其強大功能。vim有了多模式編輯有(normal,insert,vis
c# combobox 如何讓文字中顯示預設的第一條資料
有時間去看看 http://blog.csdn.net/wqygogo/article/details/3404703 http://my.csdn.net/sunrain_hjb