友善的穿山甲兄弟 2023-10-16 17:20 采纳率: 77.8%
浏览 20

hibernate原生SQL只查询个别字段转实体类时报错:ERROR org.hibernate.util.JDBCExceptionReporter - 列名 name 无效。

Java hibernate代码:

StringBuilder sb = new StringBuilder();
sb.append("SELECT u.ID ID FROM dbo.USER u ");
List<User> list = this.getSession().createSQLQuery(sb.toString()).addEntity(User.class).list();

错误信息:
[catalina-exec-1-1]WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: S1093
[catalina-exec-1-1] ERROR org.hibernate.util.JDBCExceptionReporter - 列名 name 无效。

错误原因:
User实体中有name字段,而查询SQL没有name字段。

问题:
我就只想查询ID字段,不想查询NAME字段,怎么办呢?
主要我现在即使在SQL中加上了NAME字段,万一后续USER表又加了个AGE字段,岂不是这个SQL又要报错了?
如何才能只查询某几个字段呢?

  • 写回答

2条回答 默认 最新

  • bainlyblue 2023-10-16 17:37
    关注

    一般来说用Vo类来接收数据,数据库的字段最好与User字段对应,要加字段都在Vo类中加,数据操作也是操作Vo类

    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日