mysql - 从 hibernate 中的一行中选择一列

标签 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 文本。我认为这是导致问题的原因,但它没有意义我只想将它作为字符串返回。

它只发生在这个字段名称上,我可以获取该行中的所有其他字段,但这个给了我错误。

我遇到了异常。我得到的异常(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/

相关文章:

mysql - Hibernate 标准表达式

php - 使用 $_GET 的解析和安全性

javascript - 如何使用 PHP ajax JQUERY 创建 3 个依赖下拉列表?

mysql - 使用聚合函数过滤列以显示最大记录

java - 单向@OneToMany 关联未通过 JPA 中的相等性测试

java - hibernate java.lang.NoClassDefFoundError : org/hibernate/util/DTDEntityResolver

java - 生成列表中的大量数据并生成文件

mysql - SQL内连接同一个表以获得最大值

sql - 选择具有不同值的行的百分比

java - Hibernate+PostgreSQL 抛出JDBCConnectionException : Cannot open connection