Hibernate Criteria`createAlias`"深度链接":它是一个bug吗?

时间:2016-03-15 11:56:45

标签: hibernate hibernate-criteria

我正在使用Hibernate 4.3.8使用Criteria查询MS SQL数据库。我发现了Criteria的一些奇怪的行为。

如果我做了一些"深度链接"使用createAlias,它将无效:

criteria.createAlias("user.supervision.supervisor", "uS");

实际上,根据昨天的帖子(抱歉我没有保存它),Hibernate没有" depth"的概念,如另一个问题所述。here。所以我将代码更改为:

criteria.createAlias("user", "u");
criteria.createAlias("u.supervision", "uSup");
criteria.createAlias("uSup.supervisor", "uS");

它正在发挥作用。

这是预期的行为,还是某些"隐藏"到目前为止我不知道的规则?

1 个答案:

答案 0 :(得分:1)

这是预期的行为。您可以像现在这样使用别名来执行此操作,或者您可以按照与之关联的问题的答案中的建议嵌套标准:

criteria
  .createCriteria("user")
  .createCriteria("supervision")
  .createCriteria("supervisor")