我正在尝试做一个简单的查询,以便在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中查询某一行的特定列?
答案 0 :(得分:2)
我找到了解决方案,显然Java没有可以映射到Text字段的类型,所以你必须在下面添加一个标量解决方案:感谢您的帮助
session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").addScalar("name", Hibernate.TEXT).setParameter("userId", id).uniqueResult();
答案 1 :(得分:0)