我的HQL查询出现问题,无法找到它。也许这里有人可以帮助我。我搜索了整个论坛和Google,但找不到我的问题的好答案。我的HQL查询有什么问题?
这是我的班级规模的映射:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Dec 1, 2011 3:07:44 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="be.digihash.java.servlets.database.Size" table="Size" catalog="wielsbeeksebcdb">
<id name="idSize" type="java.lang.Integer">
<column name="idSize" />
<generator class="identity" />
</id>
<property name="tshirtSize" type="string">
<column name="tshirtSize" length="45" not-null="true" />
</property>
<bag lazy="true" cascade="all" name="users">
<key column="idUser"/>
<one-to-many class="be.digihash.java.servlets.database.User"/>
</bag>
</class>
</hibernate-mapping>
而且我用这个代码在我的表中选择ID = 1。
List tshirtSize = null;
try {
tx = session.beginTransaction();
tshirtSize = session.createQuery("SELECT size.tshirtsize FROM Size as size WHERE size.idSize='" + s + "'").list();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return tshirtSize.get(0).toString();
当我运行此代码时,我得到一个NullPointerException。当我在Netbeans中运行这个查询时,我得到一个错误。
查询:`选择size.tshirtsize从尺寸为尺寸WHERE size.idSize ='1'`` 错误:
org.hibernate.QueryException: unexpected token: size.idSize.size [SELECT size.tshirtsize FROM be.digihash.java.servlets.database.Size as size WHERE size.idSize='1']
at org.hibernate.hql.classic.FromParser.token(FromParser.java:105)
at org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:86)
at org.hibernate.hql.classic.PreprocessingParser.token(PreprocessingParser.java:108)
at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:28)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:216)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:185)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
我在做什么毛病我查询?
顺便说一下,FROM Size as size
完美地检索数据库中的所有Size对象。
+1和使用查询参数它的安全 – 2011-12-18 23:57:01
这仍然无法正常工作。它与我的映射有关吗?我在用户包中设置了lazy = true? – Digihash 2011-12-19 01:45:16