Я все еще новичок в Hibernate и пытаюсь использовать его для веб-сайта, который я унаследовал. К сожалению, это означает, что иногда схемы БД не всегда имеют смысл.
С учетом вышесказанного я пытаюсь построить следующий HQL-запрос, используя Criteria API
from TableB b where b.id = :id and b.TableAProperty.UserId = :userId
Приведенный выше HQL-оператор генерирует SQL, который будет выбирать и возвращать только TableB, чего я и хочу достичь. Однако, используя операторы API Critera, показанные ниже, сгенерированный оператор SQL выбирает поля для TableB и TableA.
DataProvider.Session
.CreateCriteria<TableB>()
.Add(Expression.Eq("Id", id))
.CreateCriteria("TableA")
.Add(Expression.Eq("UserId", userId))
.UniqueResult<TableB>()
;
В идеальном мире я мог бы обновить схемы БД, чтобы сделать их более понятными, но, увы, не могу. Любая помощь по этому вопросу будет принята с благодарностью.