我正在使用 JPA CriteriaBuilderMyEntity从 MySQL 数据库中选择类型的实体,如下所示:
String regExp = "(abc|def)"
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery query = cb.createQuery( MyEntity.class );
root = query.from( MyEntity.class );
predicates = new ArrayList<Predicate>();
predicates.add( cb.like( root.<String>get( "name" ), regExp ) );
Run Code Online (Sandbox Code Playgroud)
因此,查询结果应包含name值与给定 regExp 匹配的任何实体。但结果列表始终为空。将 regExp 更改为/(abc|def)/g无效,添加通配符也无效%
如何使模式匹配工作?
或者:如何将本机 MySQL REGEXP 与 CriteriaBuilder 一起使用?