2011-02-11 71 views
4

我想要做一個簡單的查詢來獲得一個獨特的結果回到休眠這裏是我的代碼。從休眠狀態中選擇一列從一列中選擇一列

public String getName(Integer id) { 
    Session session = getSessionFactory().openSession(); 
    String name = (String)session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").setParameter("userId", id).uniqueResult(); 
    return name; 
} 

被返回的名稱被存儲爲包含html syntacx語言的HTML文本。我認爲這是導致問題的原因,但它沒有任何意義,我只是想將它作爲字符串返回。

它只發生在這一個字段名稱上,我可以得到行中的所有其他字段,但是這一個它給了我錯誤。

我收到一個異常。我得到的例外是

否JDBC方言的映射類型:-1;嵌套的異常是org.hibernate.HibernateException

如何查詢hibernate中某一行上的特定列?

+1

這看起來不錯。什麼是例外? – 2011-02-11 13:01:56

+0

剛剛更新了例外。 @Robby Pond – ComfortablyNumb 2011-02-11 13:05:25

回答

0

然後,應該工作。使用Type hibernate註釋。

添加

@Type(type="text") 

爲了您的映射。

2

我想出解決辦法,顯然Java已經不是類型可以映射,所以你必須在下方新增一個標解決方案文本字段:感謝您的幫助

session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").addScalar("name", Hibernate.TEXT).setParameter("userId", id).uniqueResult();