2011-02-11 45 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();