Hibernate Regexp MySQL
I ask this question to show how MySQL and Hibernate work each other with Regular Expressions.
The problem:
SELECT * FROM table WHERE regexp column 'd'
Solution:
Go to my answer.
Hope this helps.
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.