Hibernate:执行'按位和'操作的最佳方法是什么?

时间:2012-06-21 04:12:15

标签: hibernate java-ee bitwise-operators bitwise-and

我的项目我正在使用hibernate(3.5.6)与db进行交互。我正在使用DetachedCriteria和projection 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);

现在我想对值执行'按位和'操作..我可以使用相同的方法执行'按位和'操作..如果没有,最好的方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

自己想出解决方案..

关键是要将默认的“Dialect”扩展为自定义方言,并为按位和操作注册自定义方法

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

干杯:) ..