Author: sergeyb
Date: Thu Sep 5 15:54:02 2013
New Revision: 1520352
URL: http://svn.apache.org/r1520352
Log:
[CXF-5253] Also using notLike for wildcard strings
Modified:
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
Modified:
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java?rev=1520352&r1=1520351&r2=1520352&view=diff
==============================================================================
---
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
(original)
+++
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
Thu Sep 5 15:54:02 2013
@@ -208,7 +208,16 @@ public abstract class AbstractJPATypedQu
}
break;
case NOT_EQUALS:
- pred = builder.notEqual(exp, clazz.cast(value));
+ if (clazz.equals(String.class)) {
+ String theValue =
SearchUtils.toSqlWildcardString(value.toString(), isWildcardStringMatch());
+ if (theValue.contains("%")) {
+ pred = builder.notLike((Expression<String>)exp, theValue);
+ } else {
+ pred = builder.notEqual(exp, clazz.cast(value));
+ }
+ } else {
+ pred = builder.notEqual(exp, clazz.cast(value));
+ }
break;
case LESS_THAN:
pred = builder.lessThan(exp, clazz.cast(value));