我有一个使用8列的DB映射的类,但在hql中,我在select语句中创建第9列,使用case when语句。它给出了意想不到的toekn,似乎是语法错误。但我无法弄清楚确切的语法错误。
我得到了例外
org.jboss.resteasy.spi.UnhandledException:javax.ejb.EJBException:java.lang.IllegalArgumentException:org.hibernate.hql.ast.QuerySyntaxException:意外令牌:(靠近第1行,第353列
[选择un.id,un.timestamp,un.recipientUser,un.sendingUser,un.messageType,un.body,un.title,un.readTimestamp,发送用户时的情况> recipientUser然后CONCAT(sendingUser,' - ',recipientUser)ELSE CONCAT(recipientUser,' - ',sendingUser)END as normalised_message_parties from com.xxxxx.platform.xxx.notification.xxxxxx.UserNotification un 内部联接(选择max(timestamp)作为时间戳,发送用户> recipientUser然后CONCAT(sendingUser,' - ',recipientUser)ELSE CONCAT(recipientUser,' - ',sendingUser)END作为normal.x来自com.xxxxx.platform.xxx .notification.xxxxxx.UserNotification un其中un.sendingUser如:userID或un.recipientUser like:userID group by normalised_message_parties)as m on(m.normalised_message_parties = normalised_message_parties和m.timestamp = un.timestamp)order by timestamp DESC]
无法找出问题.. 我不知道你需要什么帮助我...所以请让我知道我会发布它.. 但到目前为止我认为..查询语法中的问题中继。 我正在使用hibernate 3.4
答案 0 :(得分:0)
列不是问题。您不能在FROM子句中使用子选择。 Hibernate文档指出,这只能在SELECT或WHERE子句中使用。你需要
有关更多详细信息,请参阅Hibernate documentation。