【发布时间】:2017-10-26 13:48:11
【问题描述】:
我正在尝试编写一个休眠查询,它根据某些条件从表中选择许多记录。
我的数据库中有两个相关的表
tbleventattendees,其中包含以下字段 - eventAttendeeRecord tbleevent、tblmembers 和 memberComments;
tblevent 有以下字段相关字段 eventID 是 tbleventattendees 中的 tblevent 外键
我要做的是编写一个 HQL 查询,向与会者显示特定活动的与会者,例如像这样的 SQL 查询 select * from tbleventattendees where tblevent = 1
但是,虽然这在 MySQL 工作台中作为 SQL 查询工作,但当我从 Netbeans 中的 tblevent = 1 的 tbleventattendees 尝试运行 HQL 查询时,我收到以下错误
org.hibernate.QueryException: Incorrect query syntax [ FROM
Society.Tbleventattendees as attendees where Tblevent =1
]
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:259)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:209)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796)
Caused by: java.lang.NullPointerException
at org.hibernate.sql.QuerySelect.appendTokens(QuerySelect.java:185)
at org.hibernate.sql.QuerySelect.setWhereTokens(QuerySelect.java:103)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.renderSQL(QueryTranslatorImpl.java:625)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:243)
... 9 more
我认为这是因为我在查询中使用数据库中的值而不是对象引用,因为当我删除 =1 条件时,我在该列中得到以下值
Society.Tbevent@6a2437ae
有人可以帮忙吗,我在这里阅读了很多帖子,但很难找到答案
【问题讨论】: