Environment
Jmix version: 2.7.6
Bug Description
For instance, you have User and UserDto entities. The user entity is restricted by JPQL row level policy: {E}.username = :current_user_username. You perform the following query:
select new dev.palestiner.jmixdatamanagerbag.entity.UserDto(u.username) from User u
But the result query is built as follows:
select newdev.palestiner.jmixdatamanagerbag.entity.UserDto(u.username) from User u where u.username = :current_user_username
Steps To Reproduce
- Download demo project: jmix-datamanager-bug.zip
- Run
UserTest#testLoadDtoByDataManager_fail()
Current Behavior
Stacktrace:
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)
at io.jmix.eclipselink.impl.JmixEclipseLinkQuery.getQuery(JmixEclipseLinkQuery.java:463)
at io.jmix.eclipselink.impl.JmixEclipseLinkQuery.getResultList(JmixEclipseLinkQuery.java:135)
at io.jmix.eclipselink.impl.JpaDataStore.executeQuery(JpaDataStore.java:688)
at io.jmix.eclipselink.impl.JpaDataStore.loadAllValues(JpaDataStore.java:419)
Environment
Jmix version: 2.7.6
Bug Description
For instance, you have
UserandUserDtoentities. The user entity is restricted by JPQL row level policy:{E}.username = :current_user_username. You perform the following query:But the result query is built as follows:
Steps To Reproduce
UserTest#testLoadDtoByDataManager_fail()Current Behavior
Stacktrace: