Đối sánh mẫu trong các truy vấn JPA chỉ được giới hạn ở
-
_
- bất kỳ nhân vật nào -
%
- bất kỳ chuỗi nào
REGEXP
có cú pháp toán tử trong MySQL (SELECT 'a' REGEXP 'A'
) vì vậy nó không thể được sử dụng với CriteriaBuilder.function()
API. Tôi e rằng cách tốt nhất là chạy truy vấn SQL gốc.
Nếu bạn đang sử dụng Hibernate, bạn có một tùy chọn nữa. Bạn có thể bọc REGEXP
toán tử trong SQLFunctionTemplate
, mở rộng phương ngữ ngủ đông
và chạy với CriteriaBuilder.function()
.