没招了,Hibernate 的 not mapped 问题

qqliang1314 2012-04-24 08:58:36
错误提示:
org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [select count(*) from User u where u.setUsername = :username]
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:111)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:327)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3441)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3325)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:733)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:584)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:244)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:256)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:187)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:138)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)

错误所在行
HQL语句 :session.createQuery("select count(*) from User u where u.username = :username")
.setString("username", u.getUsername());

实体类和表名都是 User
配置文件 :<mapping class="com.bjsxt.registration.model.User"/>
折腾一天了,就是不知道哪错了,求指点。。。
...全文
420 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉小爷 2014-09-10
  • 打赏
  • 举报
回复
引用 13 楼 lianpengju 的回复:
User的@Entity的import引入错误了,你可以改一下试试,import javax.persistence.Entity;
正解啊 ,膜拜啊。原来是这个问题。
yxqhlg 2013-05-12
  • 打赏
  • 举报
回复
引用 8 楼 qqliang1314 的回复:
看看你配置文件里面的属性和实体类里的属性命名是否一致
配置文件里要怎么改呢 是在hibernate.cfg.xml这个文件里面吗
lianpengju 2012-10-15
  • 打赏
  • 举报
回复
User的@Entity的import引入错误了,你可以改一下试试,import javax.persistence.Entity;
lianpengju 2012-10-15
  • 打赏
  • 举报
回复
嗯,这个错误解决了,但是又出现了新的问题,
org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [select count(*) from User u where u.username = :username]

at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:94)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:316)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3228)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3112)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:720)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:571)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
at $Proxy5.createQuery(Unknown Source)
at com.java.register.service.UserManager.exist(UserManager.java:14)
at com.java.register.service.UserManagerTest.testAdd(UserManagerTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

谁知道怎么办啊,
lianpengju 2012-10-15
  • 打赏
  • 举报
回复
我也有同样的问题啊,求指教啊,这个是怎么改的
liangwolfky 2012-10-14
  • 打赏
  • 举报
回复
刚才引用错了,对不起 本来是引用1楼的。。。
[Quote=引用 1 楼 的回复:]
你配置文件写错了吧,Hibernate配置文件第一层标签是<hibernate-mapping>,你写成了mapping,先看下是不是这个错误!
[/Quote]
liangwolfky 2012-10-14
  • 打赏
  • 举报
回复
这个改了就更不行了。。。
不过有可能是映射方面出了点问题。。。
[Quote=引用楼主 的回复:]
错误提示:
org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [select count(*) from User u where u.setUsername = :username]
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPers……
[/Quote]
qqliang1314 2012-09-15
  • 打赏
  • 举报
回复
看看你配置文件里面的属性和实体类里的属性命名是否一致
灬帝君灬 2012-09-12
  • 打赏
  • 举报
回复
什么问题发出来瞅瞅 我也是这个问题 弄不明白了
chkaka 2012-04-25
  • 打赏
  • 举报
回复
select count(*) from User u where u.username=?
qqliang1314 2012-04-25
  • 打赏
  • 举报
回复
解决了,是配置文件的问题,谢了
Ajava攻城师 2012-04-25
  • 打赏
  • 举报
回复
select count(*) from User u where u.setUsername = :username 这个很有个性哈 我都没见过这样的HQL
chkaka 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

select count(*) from User u where u.setUsername = :username]
里面的u.setUsername属性必须是你User bean中友这个属性,不知道这个回答是不是你想要的
[/Quote]
可以试一下
ll894311655 2012-04-24
  • 打赏
  • 举报
回复
select count(*) from User u where u.setUsername = :username]
里面的u.setUsername属性必须是你User bean中友这个属性,不知道这个回答是不是你想要的
铜雀软件 2012-04-24
  • 打赏
  • 举报
回复
你配置文件写错了吧,Hibernate配置文件第一层标签是<hibernate-mapping>,你写成了mapping,先看下是不是这个错误!

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧