@@ -37,6 +37,7 @@ import org.springframework.util.Assert;
|
||||
* @author Tom Hombergs
|
||||
* @author Michael J. Simons
|
||||
* @author Diego Krupitza
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
class ExpressionBasedStringQuery extends StringQuery {
|
||||
|
||||
@@ -48,7 +49,7 @@ class ExpressionBasedStringQuery extends StringQuery {
|
||||
|
||||
private static final String ENTITY_NAME = "entityName";
|
||||
private static final String ENTITY_NAME_VARIABLE = "#" + ENTITY_NAME;
|
||||
private static final String ENTITY_NAME_VARIABLE_EXPRESSION = "#{" + ENTITY_NAME_VARIABLE + "}";
|
||||
private static final String ENTITY_NAME_VARIABLE_EXPRESSION = "#{" + ENTITY_NAME_VARIABLE;
|
||||
|
||||
/**
|
||||
* Creates a new {@link ExpressionBasedStringQuery} for the given query and {@link EntityMetadata}.
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
* @author Mark Paluch
|
||||
* @author Michael J. Simons
|
||||
* @author Diego Krupitza
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@MockitoSettings(strictness = Strictness.LENIENT)
|
||||
@@ -174,4 +175,30 @@ class ExpressionBasedStringQueryUnitTests {
|
||||
assertThat(binding.getType()).isEqualTo(Type.STARTING_WITH);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesTemplatingWhenEntityNameSpelIsPresent() {
|
||||
|
||||
StringQuery query = new ExpressionBasedStringQuery("select #{#entityName + 'Hallo'} from #{#entityName} u",
|
||||
metadata, SPEL_PARSER, false);
|
||||
|
||||
assertThat(query.getQueryString()).isEqualTo("select UserHallo from User u");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesNoTemplatingWhenEntityNameSpelIsNotPresent() {
|
||||
|
||||
StringQuery query = new ExpressionBasedStringQuery("select #{#entityName + 'Hallo'} from User u", metadata,
|
||||
SPEL_PARSER, false);
|
||||
|
||||
assertThat(query.getQueryString()).isEqualTo("select UserHallo from User u");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesTemplatingWhenEntityNameSpelIsPresentForBindParameter() {
|
||||
|
||||
StringQuery query = new ExpressionBasedStringQuery("select u from #{#entityName} u where name = :#{#something}",
|
||||
metadata, SPEL_PARSER, false);
|
||||
|
||||
assertThat(query.getQueryString()).isEqualTo("select u from User u where name = :__$synthetic$__1");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user