使用HQL查询时提示user is not mapped错误

错误内容:org.hibernate.hql.internal.ast.QuerySyntaxException: user is not mapped [UPDATE user SET token='255387' WHERE id=1]

at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3420)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3309)

原因:HQL找不到 user 表,应该用 实体类名字,查询语句修改下即可。

public void updateToken(int id,String token){
    Transaction tx = null;
    try{
        tx = this.getSession().beginTransaction();
        String sql = String.format("UPDATE UserEntity SET Token='%s' WHERE Id=%s", token,id);
        Query query = this.getSession().createQuery(sql);
        query.executeUpdate();
        tx.commit();
    }catch (Exception ex){
        if(tx!=null)tx.rollback();
        System.out.println("错误信息:");
        ex.printStackTrace();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值