Эквивалентные критерии для запроса ниже sql? - PullRequest
0 голосов
/ 20 декабря 2011

Я использую Hibernate.У меня есть следующий запрос SQL.Я должен преобразовать это в критерии.Как мне этого добиться?

SELECT DISTINCT username 
    FROM usertable 
    WHERE user_id in (SELECT DISTINCT user_id FROM someother_table);

1 Ответ

2 голосов
/ 20 декабря 2011

Это должно делать то, что вы ищете, если вы сопоставили «user_id» как свойство и не отобразили никаких отношений (если вы сделали правильное свойство, то это может быть «myEntity.user.id» вместо «myEntity»).user_id ")

Criteria criteria = getSession().createCriteria(MyEntity.class, "myEntity");

//setting projection to distinct(myEntity.username)
criteria.setProjection(Projections.distinct(Projections.property("myEntity.username")));

DetachedCriteria subCriteria = DetachedCriteria.forClass(MyOtherEntity.class, "myOtherEntity");
subCriteria.setProjection(Projections.distinct(Projections.property("myOtherEntity.user_id")));

criteria.add(Subqueries.propertyIn("myEntity.user_id", subCriteria));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...