我正在尝试执行一个简单的查询以在 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 文本。我认为这是导致问题的原因,但它没有意义我只想将它作为字符串返回。
它只发生在这个字段名称上,我可以获取该行中的所有其他字段,但这个给了我错误。
我遇到了异常。我得到的异常(exception)是
No Dialect mapping for JDBC type: -1; nested exception is org.hibernate.HibernateException
如何在 hibernate 中查询一行中的特定列?
最佳答案
我找到了解决方案,显然 Java 没有可以映射到文本字段的类型,因此您必须在下面添加一个标量解决方案:感谢您的帮助
session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").addScalar("name", Hibernate.TEXT).setParameter("userId", id).uniqueResult();
关于mysql - 从 hibernate 中的一行中选择一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4969258/