Hibernate Regexp MySQL

后端 未结 3 1113
天命终不由人
天命终不由人 2020-12-10 19:45

I ask this question to show how MySQL and Hibernate work each other with Regular Expressions.

The problem:

SELECT * FROM table WHERE regexp column \'         


        
3条回答
  •  孤街浪徒
    2020-12-10 20:36

    Basically, to use MySQL regexp function in Hibernate we need to create a "SQLFunctionTemplate".

    Now, how to do it:

    First: Create a class called "AppMySQLDialect" and extends from MySQLDialect then override the empty constructor and finally register the regexp function:

    public class AppMySQLDialect extends MySQLDialect {
        public AppMySQLDialect() {
            super();
            /**
             * Function to evaluate regexp in MySQL
             */
            registerFunction("regexp", new SQLFunctionTemplate(Hibernate.INTEGER, "?1 REGEXP ?2"));
        }
    }
    

    Ok, now lets use it as follow:

    FROM Entity E WHERE regexp(E.string2evaluate, '\d') = 1
    

    Create your HibernateQuery and execute.

提交回复
热议问题