HQL неявное соединение в предложении where генерирует перекрестное соединение вместо внутреннего соединения
м с использованием Hibernate 3.6 и MSSQL 2012.
При выполнении этого HQLI '
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, но я могуничего не делать с этим прямо сейчас.