Ошибка JpqlSyntaxException в DataManager при вызове JPQL с ключевым словом new, если у пользователя настроены ограничения

Ошибка проекции в DataManager

После применения ограничений для пользователя
Applied row-level constraint to [User where={{E}.username = :current_user_username}] for user [user1] by io.jmix.securitydata.constraint.ReadEntityQueryConstraint
если мапить в UserDto, получаем ошибку

Errors found for input jpql:[select newdev.palestiner.jmixdatamanagerbag.entity.UserDto(u.username) from User u where u.username = :current_user_username]
CommonErrorNode [<mismatched token: [@11,58:58='(',<27>,1:58], resync=(u.username) from User u>]
io.jmix.data.impl.jpql.JpqlSyntaxException: Errors found for input jpql:[select newdev.palestiner.jmixdatamanagerbag.entity.UserDto(u.username) from User u where u.username = :current_user_username]
CommonErrorNode [<mismatched token: [@11,58:58='(',<27>,1:58], resync=(u.username) from User u>]
	at io.jmix.data.impl.jpql.Parser.checkTreeForExceptions(Parser.java:112)
	at io.jmix.data.impl.jpql.Parser.parse(Parser.java:40)
	at io.jmix.data.impl.jpql.QueryTree.<init>(QueryTree.java:50)
	at io.jmix.data.impl.jpql.QueryTree.<init>(QueryTree.java:40)
	at io.jmix.data.impl.jpql.QueryParserAstBased.getTree(QueryParserAstBased.java:74)
	at io.jmix.data.impl.jpql.QueryParserAstBased.getAnalyzer(QueryParserAstBased.java:88)
	at io.jmix.data.impl.jpql.QueryParserAstBased.getParamNames(QueryParserAstBased.java:95)
	at io.jmix.eclipselink.impl.JmixEclipseLinkQuery.processParams(JmixEclipseLinkQuery.java:629)

Ограничения

MinimalRole.java

@ResourceRole(name = "минимальный доступ", code = MinimalRole.CODE, scope = SecurityScope.API)
public interface MinimalRole {

    String CODE = "minimal-role";

    @EntityPolicy(entityClass = User.class, actions = {READ, UPDATE})
    @EntityAttributePolicy(entityClass = User.class, attributes = "*", action = MODIFY)
    void users();

    @SpecificPolicy(resources = "rest.enabled")
    void rest();

}

MinimalRowRole.java

@RowLevelRole(name = "MinimalRow", code = MinimalRowRole.CODE)
public interface MinimalRowRole {

    String CODE = "minimal-row";

    @JpqlRowLevelPolicy(entityClass = User.class, where = "{E}.username = :current_user_username")
    void users();

}

Запуск

./gradlew test --tests "dev.palestiner.jmixdatamanagerbag.user.UserTest"

Repos

jmix-datamanager-bag

Здравствуйте, Юрий!

Спасибо за тестовый проект! Проблему воспроизвёл, создал задачу: The "new" operator is concatenated to DTO name in JPQL query after applying constraints · Issue #5152 · jmix-framework/jmix · GitHub

Здравствуйте, спасибо большое!