SSh架构hibernate 执行hql报错:org.springframework.orm.hibernate3.HibernateQueryException

SSh架构hibernate执行hql报错:org.springframework.orm.hibernate3.HibernateQueryExceptionorg.s... SSh架构hibernate 执行hql报错:org.springframework.orm.hibernate3.HibernateQueryException

org.springframework.orm.hibernate3.HibernateQueryException: my_test is not mapped [select usr from my_test usr where name = ?]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: my_test is not mapped [select usr from my_test usr where name = ?]

代码附上:
hibernante配置文件:
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://192.168.0.186:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">111222</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="show_sql">true</property>
<mapping resource="com/longdpt/model/User.hbm.xml" />
</session-factory>
User.hbm.xm配置文件:

<class name="com.longdpt.model.User" table="my_test">
<id name="id" column="id" type="int">
<generator class="increment"></generator>
</id>
<property name="username" column="name"/>
<property name="password" column="pass" type="string"/>
</class>
user类:三个属性:id,username,password(setter和getter均有 )
数据库:test下的my_test表:三个字段分别为:id,name,pass ;

dao方法:
public Object findbyID(String id) {
// TODO Auto-generated method stub
Object obj ;
try {
obj = (Object)getHibernateTemplate().find("select usr from my_test usr where name = ?", id).get(0);
return null;
} catch (RuntimeException e) {
// TODO: handle exception
throw e;
}
}
展开
 我来答
zzp0706034135
2013-01-15
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
hibernate 执行hql,操作的是表映射的类,不是表。
"select usr from my_test usr where name = ?"
改为 "from User where username=?"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
faxisi_cui
2013-01-14 · TA获得超过471个赞
知道答主
回答量:30
采纳率:0%
帮助的人:33.7万
展开全部
应该使用HQL作为查询语言,而不是传统的SQL了,HQL是面向对象的,所以需要使用User对象代替表名。
所以HQL应该这样写:

select usr from User usr where usr.name = ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Love_Bydu
推荐于2017-11-25 · TA获得超过303个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:131万
展开全部
你这个sql语句,我不知道有什么问题没有?
select usr from my_test usr where name = ?
这是什么意思?where “ name = ?”如果传的参数是name的话,为什么上面给的是id?|
你要查询的是表中的一条记录还是一个字段?
希望我这些问题,能帮你找到答案。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2013-01-13 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
没错,得用HQL的语法
SELECT user FROM User user WHERE user.namt=?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者AHLhc224hw
2013-01-13 · TA获得超过947个赞
知道小有建树答主
回答量:751
采纳率:0%
帮助的人:314万
展开全部
select usr from my_test usr where name = ?

改成
from User user where user.id= ? ;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式