Hibernate Regexp MySQL

后端 未结 3 1096
天命终不由人
天命终不由人 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:26

    REGEXP is treated as a keyword in MySQL. User can use REGEXP in hibernate filter by registering the keyword. Create a class 'CustomMySQL5InnoDBDialect' extending MySQL5InnoDBDialect and register the keyword as follows :

    public class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {
    
    public CustomMySQL5InnoDBDialect() {
        super();
       /* register regexp keyword */
        registerKeyword("regexp");
    }
    }
    

    Then change the hibernate-dialect property in persistence.xml as

    
    

    User can use the regexp in hibernate filter as follows

    @Filters(value = {  @Filter(name="applyStudentFilter",condition="id in (select s.id from student s WHERE s.address REGEXP :addressValue)"),
    })
    

提交回复
热议问题