1

次の基準を作成しようとしています。

public List<Domain> getDomains()
{
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria( Domain.class );
    User user = userManager.getLoggedInUser();
    if ( user.getDomain().getVisibleDomains() != null && user.getDomain().getVisibleDomains().size() > 0 )
    {
        criteria.add( Restrictions.or( Restrictions.eq( /*here should be "THIS"*/, user.getDomain() ), Restrictions.in( /*here should be "THIS"*/, user.getDomain().getVisibleDomains() ) ) );
    } else
    {
        criteria.add( Restrictions.eq( /*here should be "THIS"*/, user.getDomain() ) );
    }

    return criteria.list();
}

ご存知かもしれませんが、これはうまくいきません。基準が作成された「この」エンティティを指す基準APIに方法はありますか?

オブジェクト「ドメイン」をポイントし、休止状態で「ID」を比較する作業を実行するようにすると、自分ですべてを書き込む (ID のセットを作成して基準に入れる) 代わりに、作業がはるかに簡単になります。

4

1 に答える 1

1
// convert user.getDomain().getVisibleDomains() in
List<long> visibleDomainIds = 

Criteria criteria = session.createCriteria(Domain.class);
    .add(Restrictions.or(
        Restrictions.eq("id", user.getDomain().getId()), 
        Restrictions.in("id", visibleDomainIds)));
于 2012-10-05T09:58:07.820 に答える