diff --git a/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java b/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java index c1c7f6423..50346287b 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java @@ -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; diff --git a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java index fbcc24158..b5f5ea15e 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java @@ -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)); }