How to extract records based on the hidden value using Hibernate?


I have a requirement where i need to retrieve data from database based on the bitmask value.

Here is my table: Employees

I am wondering how can I write hibernate code to make use of below query.

select * From Employee where (Flag&5)!=0

Any thoughts around this?

You need to create a custom function to map bitwise operator in HQL

1> Register your operator in the dialect for your db

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

2> Extend and implement SQLFunction libraries

   public class MySQLBitwiseAndSQLFunction extends StandardSQLFunction
   implements SQLFunction {

public MySQLBitwiseAndSQLFunction(String name) {

public MySQLBitwiseAndSQLFunction(String name, Type typeValue) {
   super(name, typeValue);

 public String render(List args) {
   if (args.size() != 2){
       throw new IllegalArgumentException("the function must be passed 2 arguments");
   StringBuffer buffer = new StringBuffer(args.get(0).toString());
   buffer.append(" & ").append(args.get(1));
   return buffer.toString();

3> Use the newly registered operator in your hql

You can find the reference on