1. 程式人生 > >hibernate的createSQLQuery與createQuery的返回陣列與物件問題

hibernate的createSQLQuery與createQuery的返回陣列與物件問題

我要執行的語句是:select * from Question

HQL是這麼寫的:

Session session = getSession();

String hql="from Question";

List list = (Question)session.createQuery(hql).list();

System.out.println(list.getTitle());

測試正常

SQL寫法:

Session session=getSession();

String sql="select * from Question"

List list=(Question)session.createSQLQuery(sql).list();//會發生型別轉換錯誤,就是文章開頭的那個錯誤

原因:
HQL中

String hql="from Question";

List list = (Question)session.createQuery(hql).list();

會根據你的hql語句,自動將session.createQuery(hql).list()的返回物件以hibernate生成的Bean為物件裝入list返回

SQL中

String sql="select * from Question"

List list=(Question)session.createSQLQuery(sql).list();

則是以物件陣列進行儲存返回

一句話:HQL:返回list裝的是Bean SQL:返回物件就是一陣列,陣列在轉為Question物件時,當然會報錯。

解決方法:

第一種:直接老老實實用HQL去寫吧= =引數化就百度“Hibernate 引數繫結”就行

第二種:使用原生SQL,呼叫其中的一個方法addEntity()

String sql="select * from Question";

Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);

List list = (Question)query;

這樣 list中也就裝的是Question這洋一個個Bean物件了,問題還是不知道如何引數化= =!

找到方法了:

Hibernate中的分頁語句可以這麼寫

     session = HibernateUtils.getSession();
     session.beginTransaction();
     Query query = session.createQuery("from User");
     query.setFirstResult(0);//從第一條記錄開始
     query.setMaxResults(4);//取出四條記錄
     List userList = query.list();

相關推薦

hibernate的createSQLQuerycreateQuery返回陣列物件問題

我要執行的語句是:select * from Question HQL是這麼寫的: Session session = getSession(); String hql="from Question"; List list = (Question)session.createQuery(hql).list(

php中json_decode返回陣列物件

轉自:http://www.3lian.com/edu/2014/02-11/128395.html  1.json_decode()   json_decode   (PHP 5 >= 5.2.0, PECL json >= 1.2.0)   jso

PHP陣列物件之間相互轉換

/**  * 陣列 轉 物件  *  * @param array $arr 陣列  * @return object  */ function ar

物件的列舉(2)- in instanceof以及區分陣列物件的方法

2.in                 * __proto__ : { lastName : "deng", //__pro

java學習筆記:二維陣列面向物件

目標: 二維陣列 面向物件程式設計 一、二維陣列 二維陣列就是一個元素為一維陣列的陣列。 格式1: 資料型別[][] 變數名 = new 資料型別[m][n]; m表示這個二維陣列有多少個一維陣列 n表示每一個數組的元素的元素個數 /*

JS中陣列物件的遍歷方法例項

一、陣列的遍歷: 首先定義一個數組 arr=['snow','bran','king','nightking']; 1、for迴圈,需要知道陣列的長度; 2、foreach,沒有返回值,可以不知道陣列長度; arr.forEach(function(ele,index

使用sessionStorage、localStorage儲存陣列物件

存: sessionStorage.setItem("financialList",JSON.stringify($scope.financialList)) sessionStorage.setIt

numpy之通過陣列PIL.Image物件的互轉進行圖片處理

------------------------------------------------語法基礎------------------------------------------------ import numpy                        

XMLHttpRequest() 請求 返回結果JSON 物件JSON 字串處理

好久沒有看JavaWEB專案了突然拿起來,而且是原生的專案,中JSON 字串的處理   json.stingfy() 將物件,陣列轉換為字串,json.parse() 將字串轉成json 物件  JSON.stringify(陣列或者物件)  JSON.parse(字串)

物件陣列陣列集合

物件陣列的概述和使用   A:案例演示 需求:我有5個學生,請把這個5個學生的資訊儲存到陣列中,並遍歷陣列,獲取得到每一個學生資訊。 *  Student[] arr = new Student[

angular---angularJs1.x中select如何遍歷渲染option,陣列物件、索引使用以及動態非同步渲染option項

1、ng-options指令用途: 在表示式中使用陣列或物件來自動生成一個select中的option列表。ng-options與ng-repeat很相似,很多時候可以用ng-repeat來代替ng-options。但是ng-options提供了一些好處,例如

[JSP]EL表示式和JSTL標籤遍歷取值物件陣列原來的對比

》》取出放進了request的key裡list,list含有物件 原: <%@page import="com.yiki.dbutil.*"%> <%@ page languag

陣列物件的相互轉化

方法1 $arr = json_encode($obj); $new_arr = json_decode($arr,true); $new_arr為陣列 方法2 $obj;         $pack

Intent 傳遞簡單型別, 陣列, Object物件,ArrayList 型別資料

Android應用可以通過Intent實現元件間、程序間通訊,從而實現在它們間傳遞資料,包括簡單資料型別,類物件,泛型資料。簡單資料型別可以直接傳遞,而涉及到類物件的複雜資料型別,需要把類物件轉換為基礎的位元組陣列,如資料類實現Serializable或Parcelable

物件陣列普通陣列的區別

public static void main(){ int[] ia = new int[10]; //在這個陣列建立的時候,陣列中元素都是0 //此時

編寫一個函式 返回陣列中最大值最小值的差值

#include "stdAfx.h" #include "ctype.h" #include "stdlib.h" int main(void) { int sum_(int a[],int x)

JavaScript陣列物件(1)

this並不是一個常量,它在程式的不同地方返回的值也不相同。 JavaScript對陣列初始化表示式進行求值的時候,陣列初始化表示式中的元素表示式也都會各自計算一次。 陣列直接量中的列表逗號之間的元素可以省略,這時省略的空位會填充undefined。 JavaScript求

js 陣列物件的區別

學習javascript的時候,我曾經一度搞不清楚”陣列”(array)和”物件”(object)的根本區別在哪裡,兩者都可以用來表示資料的集合。 比如有一個數組a=[1,2,3,4],還有一個物件a={0:1,1:2,2:3,3:4},然後你執行alert(a[1]

js陣列物件字串互轉

JSON.stringify 函式:陣列(物件)/物件轉化為字串 語法 JSON.stringify(obj/Array [, replacer] [, space]) 示例1 此示例使用 JSON.stringify 將 contact 物件轉換為 J

磁盤陣列磁盤配額

磁盤陣列與磁盤配額1.磁盤陣列0 #加速(同時錄入,吞吐量大,適合網頁輸出)1 #備份(同