JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Object Relational Mapping » Hibernate  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 Re:使用createSQLQuery.addEntity不取所有欄位,結果SQLServerException: 資料行名稱無效 [Re:a29484426a]
Landgray





發文: 78
積分: 0
於 2015-10-12 08:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
a29484426a wrote:
謝謝前輩回答

塞入物件的話,我有找到使用ssion.createQuery("select new vo.Customer(c.name,c.account) from vo.Customer c"),不部過這個要先在物件中先建立建構子public Customer(String name, String account)才行,可是怎麼沒有直接就用setter來塞入呢?name跟account名稱都跟物件一樣,像前端填的值,struts 2就可以自動塞入了


我倒忘了有這條路, 起碼離你要的近了一點, 簡單了一點?

雖然本質上還是一樣:
沒辦法只改select語法就決定好, 要告訴hibernate一筆資料“起碼”是怎樣(這條路是用建構子告知)

當初我好像就是研究到這邊, 找不到更彈性的方法就放棄HQL了 ~_~......其實也不算放棄, 就只是沒再鑽牛角尖在這點上了--> 我選擇簡單的查詢用Example, 沒有太複雜的用Criteria, 很複雜或是說Criteria辦不到(包含效率上的辦不到)的查詢就用sql......一整個大雜燴......
sql 關鍵
1
2
3
4
5
6
7
8
9
10
11
12
            ResultSetMetaData metaData = ps.getMetaData();
 
            int cols = metaData.getColumnCount();
            List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>();
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Map<String, Object> row = new HashMap<String, Object>();
                for (int j = 1; j <= cols; j++) {
                    row.put(metaData.getColumnName(j), rs.getObject(j));
                }
                rows.add(row);
            }

再用apache的套件,我忘了是哪個, map可以對應欄位塞進entity, 或是自己當練習用Reflect套件實作
就是你要的了
, 缺點是這些entity並不在hibernate的“管理”下, 自己爭酌著用了


Landgray edited on 2015-10-12 08:37
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
2069 使用createSQLQuery.addEntity不取所有欄位,結果SQLServerException: 資料行名稱無效 a29484426a 4197 2015-09-30 08:03
1836 Re:使用createSQLQuery.addEntity不取所有欄位,結果SQLServerException: 資料行名稱無效 Landgray 363 2015-10-05 10:36
1825 Re:使用createSQLQuery.addEntity不取所有欄位,結果SQLServerException: 資料行名稱無效 a29484426a 233 2015-10-08 07:12
1883 Re:使用createSQLQuery.addEntity不取所有欄位,結果SQLServerException: 資料行名稱無效 Landgray 1216 2015-10-12 08:33
» JWorld@TW »  Object Relational Mapping » Hibernate

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8