1

クエリを持っている Java ランドで休止状態のクエリ (createSQLquery) を記述する必要がありますが、クエリの条件を作成する方法を少し失いました。

基本的に、通常の where 句を hibernate .add(Restriction) に転送する必要があります

たとえば、次のようにします。

where (name LIKE '%test%' or lastname LIKE '%test%') and (site_id = 2) and (date>=121212 and date <= 343343)

Query query = sess.createSQLQuery(sql).addScalar("ID", Hibernate.long);
query.add(Restrictions.or ( 
                            Restrictions.like("name", "%test%")
                            Restrictions.like("lastname", "Fritz%")
          ))
     .add(Restrictions.eq("site_id", new Integer(2)))
     .add(Restrictions.add(Restrictions.gr("date_start", 122122)
                       .add(Restrictions.le("date_end", 345433)));

現在、自分の環境にアクセスできないため、実行する機会がありませんでした。これを理解したいだけです。

ありがとう

4

2 に答える 2

0

あなたはこのようにしなければなりません

    Criteria criteria = session.createCriteria(YourPojo.class);
    criteria.add(Restrictions.eq("id", id));
    criteria .add(Restrictions.or ( 
                        Restrictions.like("name", "%test%"),
                        Restrictions.like("lastname", "Fritz%")));
    criteria.add(Restrictions.eq("site_id", new Integer(2)))
    criteria.add(Restrictions.add(Restrictions.gr("date_start", 122122)
                   .add(Restrictions.le("date_end", 345433)));
    return (criteria.list());
于 2013-03-30T07:42:15.987 に答える