0

私のプロジェクトでは、hibernate (3.5.6) を使用して db とやり取りしています。一般的なクエリを作成するために DetachedCriteria と Projections API を使用しています。

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(<ClassName>.class,"rp");
detachedCriteria.setProjection(Projections.count("<field>"));
detachedCriteria.add(Restrictions.eq("<field>", field));
count = (Long) getHibernateTemplate().findByCriteria(detachedCriteria).get(0);

ここで、値に対して「ビット単位および」操作を実行したい..同じ方法を使用して、この「ビット単位および」操作を実行できます.そうでない場合、これを行う最良の方法は何ですか?

前もって感謝します。

4

1 に答える 1

2

自分で解決策を考え出した..

重要なことは、デフォルトの「方言」をカスタムの方言に拡張し、ビットごとの操作のためにカスタムメソッドを登録することです

public class MySQLDialect extends org.hibernate.dialect.MySQLDialect {
    public MySQLDialect() {
       super();
       registerFunction("bitwise_and", new MySQLBitwiseAndSQLFunction("bitwise_and", Hibernate.INTEGER));
   }
}

完全な説明のリンクは次のとおりです: https://forum.hibernate.org/viewtopic.php?t=940978

乾杯 :)..

于 2012-06-21T16:30:06.560 に答える