从休眠行中选择一列

时间:2011-02-11 12:59:25

标签: mysql hibernate

我正在尝试做一个简单的查询,以便在hibernate中获得一个独特的结果,这是我的代码。

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中查询某一行的特定列?

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,显然Java没有可以映射到Text字段的类型,所以你必须在下面添加一个标量解决方案:感谢您的帮助

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

答案 1 :(得分:0)

那应该有用。使用Type休眠注释。

添加

@Type(type="text")

到你的映射。