Hibernate 在何处约束中使用实体有效吗?

Hibernate 在何处约束中使用实体有效吗?,hibernate,hql,Hibernate,Hql,假设我有一个模型 [User] n ->1 [Site] 我曾经有过几个例子,我是这样使用hql的: em.createQuery("from users where site = :site") .setParmeter("site", currentSite) 直到我把它改成 em.createQuery("from users where site.id = :site") .setParmeter("site", currentSite.getId()) 在我看来,h

假设我有一个模型

[User] n ->1 [Site]
我曾经有过几个例子,我是这样使用hql的:

em.createQuery("from users where site = :site")
  .setParmeter("site", currentSite)
直到我把它改成

em.createQuery("from users where site.id = :site")
  .setParmeter("site", currentSite.getId())

在我看来,hibernate应该能够解决这个问题。我是做错了什么,还是第二种形式正是我应该使用的?

只要当前站点有ID,这两种形式都应该有效。如果您告诉我们它引发了哪种异常,这将有助于诊断问题。@jbnize没有异常,它只是没有将站点ID绑定到参数,因此如果它没有绑定它,将找不到任何东西,准备好的语句将缺少参数。它必须绑定一些东西。@jbnize对不起,我的意思是它绑定了对象的toString表示形式。请不要在标题中写标记。