Re: [問題] Hibernate 表示方法

看板java作者 (Alien)時間14年前 (2011/12/24 09:40), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《chonmanaeyo (老鳳仙)》之銘言: : 我嘗試將原本 SQL Server 可執行的語法 : 改以 Hibernate 撰寫,但始終無法正確執行 : 範例如下: : select convert(varchar(10), A.time, 120), count(A.price) : from TableX as A, TableX as B : where A.id = B.id : and A.time between '2011-12-01 00:00:00' and '2011-12-23 23:59:59' : group by convert(varchar(10), A.time, 120) : 主要是那個 convert 不知用什麼方式組合較好 : 希望有人能給予一點方向 : 謝謝 首先我不清楚 SQL Server 的 convert 是搞什麼用的,我 猜是轉成 varchar 之類? 我想你這段應該是想寫 HQL? 首先,你要用 Hibernate,就請你把你的 model 用比較 OO 的角度去看。它們再不是一堆 table, 然後做join,而是在 model 裡已經定義好 model 之間的關係。 另外也沒必要再搞什麼 date -> varchar 的轉換了吧,直接 取回 model或 model 的 attribute。 你的 self join 也看不出來有什麼用。 要是你真的要寫成這樣,model 本身關係混亂,或者本身 DB Schema 你沒法改得比較合理,那麼這個 query 倒不如 直接用 SQL寫算了,反正 Hibernate Session 也可以餵 SQL, 沒必要硬寫 HQL 可是寫出來難看難懂得要命 Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 183.179.61.91

12/24 10:15, , 1F
他是想要以天為單位選出 count。
12/24 10:15, 1F

12/24 10:45, , 2F
樓上正解,此舉是希望將多項同一天但時間不同的筆數
12/24 10:45, 2F

12/24 10:48, , 3F
能綁成一筆資料 來作加總
12/24 10:48, 3F

12/24 11:06, , 4F
我支持直接寫 natvie sql。
12/24 11:06, 4F

12/24 11:18, , 5F
推樓上.. 不然就是也不要count了.. select下來後用map自己作..
12/24 11:18, 5F

12/25 19:21, , 6F
感謝各位的幫忙,我會試試看
12/25 19:21, 6F
文章代碼(AID): #1EzIs1A5 (java)
文章代碼(AID): #1EzIs1A5 (java)