HQL неявное соединение в предложении where генерирует перекрестное соединение вместо внутреннего соединения
Я использую Hibernate 3.6 и MSSQL 2012.
При выполнении этого HQL
select tbl.state from Property tbl where tbl.state = 1 and tbl.entity.state = 1 and
tbl.entity.className = 'com....' and tbl.fieldName = 'fieldName'
Я получаю этот SQL
select property0_.State as col_0_0_ from Properties property0_ cross join Entities
entity1_ where property0_.refEntityid=entity1_.id and property0_.State=1 and
entity1_.State=1 and entity1_.ClassName='com....' and property0_.FieldName='fieldName'
* Обратите внимание наперекрестное соединение идобавленное условие в пункте, где.
Согласно документам Hibernatehttps://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html#queryhql-joins-forms
неявное соединение должно генерироватьвнутреннее соединение.
Я заметил, что есть открытая ошибкаhttps://hibernate.atlassian.net/browse/HHH-7707 это может быть связано с этой проблемой, но никто не ответил, и он открыт уже год.
Буду признателен за любую информацию по этому вопросу. Спасибо.
PS. Мне хорошо известно, что использование неявных объединений - это неправильный способ написания HQL, но сейчас я ничего не могу с этим поделать.