SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]

非常诡异的报错,信息如下:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [select count(*) from User u where u.userName=? and u.userPassword=? ]Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped类似的报错信息的解决方法,我也是研究了半天才最后发现问题
出现这中错误情况有两种

1,配置文件没有加载到hibernate的实体列表里面

2,映射文件的字段与数据库字段不一致,或者名称不一致导致

hql 是 有专门的语法的。 不是sql。你把hibernate方言设置成你用的数据库。
sql的语法和hql不是一回事。......QuerySyntaxException...是说,你要的sql不是hql,语法错误。。

1.看是否忘记将hibernate的映射文件添加到Hibernate.cfg.xml(使用Hibernate时)或者applicationContext.xml中

2.检查表中的字段和映射文件中的字段是否一一对应

3.检查字段名是否使用了数据库中的关键字

4.HQL语句是否正确

HQL: Hibernate 查询语言Hibernate 配备了一种非常强大的查询语言,这种语言看上去很像 SQL。但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。

所以这个时候你要认真检查一下你写的hql语句,一定是对象查询,特别是【tableName】 不要写你要查询的表,而是查询的对象

比如:

public long getTypeCount(Patent patent) {
String hqlString = "select count(*) from Patent as p where p.type =‘"+patent.getType()+"‘";
Query query = this.getSession().createQuery(hqlString);
long count =0;
count = ((Number)query.uniqueResult()).intValue();
return count;
}

Patent  是一个对象

而数据库的表名是patent   如果写成String hqlString = "select count(*) from patent as p where p.type =‘"+patent.getType()+"‘";

肯定是查询不出结果的,切记!

时间: 2024-10-08 09:04:22

SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]的相关文章

org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped 异常处理

公司跑项目时,遇到过非常诡异的报错,信息如下:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [select count(*) from User u where u.userName=? and u.userPassword=? ] Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped 出

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: table is not Mapped问题解决

引言: 在基于SpringData/JPA来快速开发若干功能过程中,碰到了table is not Mapped问题,经过一番辛苦的调试测试之后,才发现了一个@Entity的属性name的妙用. 1. 问题的提出 场景描述: 在开发中,做几个功能类似的模块,但代码需要独立,方便后续的独立部署.故出现了很多包路径不同,但是类的名称类似的类.在Model中定义了很多名称相同的实体类,都是以@Entity来定义的. @Entity @Table(name="table1") public c

ERROR org.hibernate.hql.internal.ast.ErrorCounter unexpected token: form 异常解决

ERROR org.hibernate.hql.internal.ast.ErrorCounter unexpected token: form 异常解决 根据异常提示:我找了我的MySQL语句:果然找到了 将FORM修改为FROM后运行就对了 这些都是粗心导致,希望我能记住这个错误. 我百度了一下,发现还有许多类似的错误 总结: ERROR org.hibernate.hql.internal.ast.ErrorCounter :unexpected token: xxxx 解决办法: 1.首

Spring Data之@Query中的org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML

1. 环境准备 Spring , Spring Data, JPA, HIbernate, JDK 1.7 2.  问题提出 在使用Spring Data 来更新数据之时,爆出了如下错误信息: @Query("UPDATE User u SET u.state = ?1 WHERE u.server.id = ?2") public void updateAllUsers(long state, long serverid); 错误信息如下: org.springframework.d

github添加ssh key报错Key is invalid. Ensure you've copied the file correctly

github添加ssh key的时候报错:Key is invalid. Ensure you've copied the file correctly 将秘钥复制粘贴到文本编辑器中,再粘贴复制到 github添加ssh key报错Key is invalid. Ensure you've copied the file correctly

sqlplus连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0解决

sqlplus连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0解决 sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0 问题描述: 使用sqlplus客户端登录数据库,报错SP2-0642,而使用其它方式plsql或者tnsnames等方式连接数据库均没有问题 [plain] [[email protected] ~

ubuntu安装ssh服务报错

一.问题描述 如图,ssh 安装报错 二.解决办法 按照提示要求将依赖库装好即可. 原文地址:https://www.cnblogs.com/musexiaoluo/p/12369396.html

Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User

Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User user where user.name=?0 and user.pass=?1] at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180

spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread

spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) at org.hibernate.internal.SessionFactoryImpl.getC