Support alternative NOT EQUALS operators in HQL.
Hibernate also supports "!=" and "^=" as NOT EQUALS operators. See #2970 Original Pull Request #2972
This commit is contained in:
@@ -533,8 +533,9 @@ expressionOrPredicate
|
||||
;
|
||||
|
||||
// https://docs.jboss.org/hibernate/orm/6.1/userguide/html_single/Hibernate_User_Guide.html#hql-relational-comparisons
|
||||
// NOTE: The TIP shows that "!=" is also supported. Hibernate's source code shows that "^=" is another NOT_EQUALS option as well.
|
||||
relationalExpression
|
||||
: expression op=('=' | '>' | '>=' | '<' | '<=' | '<>' ) expression
|
||||
: expression op=('=' | '>' | '>=' | '<' | '<=' | '<>' | '!=' | '^=' ) expression
|
||||
;
|
||||
|
||||
// https://docs.jboss.org/hibernate/orm/6.1/userguide/html_single/Hibernate_User_Guide.html#hql-between-predicate
|
||||
|
||||
@@ -564,6 +564,22 @@ class HqlQueryRendererTests {
|
||||
""");
|
||||
}
|
||||
|
||||
@Test // GH-2970
|
||||
void alternateNotEqualsShouldAlsoWork() {
|
||||
|
||||
assertQuery("""
|
||||
SELECT TYPE(e)
|
||||
FROM Employee e
|
||||
WHERE TYPE(e) != Exempt
|
||||
""");
|
||||
|
||||
assertQuery("""
|
||||
SELECT TYPE(e)
|
||||
FROM Employee e
|
||||
WHERE TYPE(e) ^= Exempt
|
||||
""");
|
||||
}
|
||||
|
||||
@Test
|
||||
void theRest5() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user