我问这个问题以展示MySQL和Hibernate如何通过正则表达式相互配合。
问题:
SELECT * FROM table WHERE regexp column '\d'
解:
转到我的答案。
希望这可以帮助。
基本上,要在Hibernate中使用MySQL regexp函数,我们需要创建一个“ SQLFunctionTemplate”。
现在,如何做:
首先:创建一个名为“ AppMySQLDialect”的类,并从MySQLDialect扩展,然后覆盖空的构造函数,最后注册regexp函数:
public class AppMySQLDialect extends MySQLDialect {
public AppMySQLDialect() {
super();
/**
* Function to evaluate regexp in MySQL
*/
registerFunction("regexp", new SQLFunctionTemplate(Hibernate.INTEGER, "?1 REGEXP ?2"));
}
}
好的,现在让我们按以下方式使用它:
FROM Entity E WHERE regexp(E.string2evaluate, '\d') = 1
创建您的HibernateQuery并执行。