DATAJPA-736 - Added support for non-ASCII characters in entity names.
We now use an improved regular expression to detect identifier clauses in JPQL queries to be able to derive count queries for queries that use non-ASCII characters in entity names.
This commit is contained in:
@@ -80,7 +80,7 @@ public abstract class QueryUtils {
|
||||
private static final Pattern ALIAS_MATCH;
|
||||
private static final Pattern COUNT_MATCH;
|
||||
|
||||
private static final String IDENTIFIER = "[\\p{Alnum}._$]+";
|
||||
private static final String IDENTIFIER = "[\\p{Lu}\\P{InBASIC_LATIN}\\p{Alnum}._$]+";
|
||||
private static final String IDENTIFIER_GROUP = String.format("(%s)", IDENTIFIER);
|
||||
|
||||
private static final String JOIN = "join " + IDENTIFIER + " (as )?" + IDENTIFIER_GROUP;
|
||||
|
||||
@@ -295,6 +295,14 @@ public class QueryUtilsUnitTests {
|
||||
assertThat(applySorting(query, sort, "c"), endsWith("order by p.lineItems asc"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAJPA-736
|
||||
*/
|
||||
@Test
|
||||
public void supportsNonAsciiCharactersInEntityNames() {
|
||||
assertThat(createCountQueryFor("select u from Usèr u"), is("select count(u) from Usèr u"));
|
||||
}
|
||||
|
||||
private void assertCountQuery(String originalQuery, String countQuery) {
|
||||
assertThat(createCountQueryFor(originalQuery), is(countQuery));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user