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;
}
} 展开
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;
}
} 展开
5个回答
展开全部
hibernate 执行hql,操作的是表映射的类,不是表。
"select usr from my_test usr where name = ?"
改为 "from User where username=?"
"select usr from my_test usr where name = ?"
改为 "from User where username=?"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该使用HQL作为查询语言,而不是传统的SQL了,HQL是面向对象的,所以需要使用User对象代替表名。
所以HQL应该这样写:
select usr from User usr where usr.name = ?
所以HQL应该这样写:
select usr from User usr where usr.name = ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个sql语句,我不知道有什么问题没有?
select usr from my_test usr where name = ?
这是什么意思?where “ name = ?”如果传的参数是name的话,为什么上面给的是id?|
你要查询的是表中的一条记录还是一个字段?
希望我这些问题,能帮你找到答案。
select usr from my_test usr where name = ?
这是什么意思?where “ name = ?”如果传的参数是name的话,为什么上面给的是id?|
你要查询的是表中的一条记录还是一个字段?
希望我这些问题,能帮你找到答案。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没错,得用HQL的语法
SELECT user FROM User user WHERE user.namt=?
SELECT user FROM User user WHERE user.namt=?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select usr from my_test usr where name = ?
改成
from User user where user.id= ? ;
改成
from User user where user.id= ? ;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询