use of com.haulmont.cuba.core.sys.jpql.DomainModel in project cuba by cuba-platform.
the class QueryTransformerAstBasedTest method getResult_noChangesMade_parametersWithDot.
@Test
public void getResult_noChangesMade_parametersWithDot() throws RecognitionException {
EntityBuilder builder = new EntityBuilder();
JpqlEntityModel teamEntity = builder.produceImmediately("Team", "name");
builder.startNewEntity("Player");
builder.addSingleValueAttribute(Date.class, "birthDate");
builder.addReferenceAttribute("team", "Team");
JpqlEntityModel playerEntity = builder.produce();
DomainModel model = new DomainModel(playerEntity, teamEntity);
QueryTransformerAstBased transformerAstBased = new QueryTransformerAstBased(model, "SELECT p FROM Player p where p.birthDate = :d.option");
String result = transformerAstBased.getResult();
assertEquals("SELECT p FROM Player p where p.birthDate = :d.option", result);
}
use of com.haulmont.cuba.core.sys.jpql.DomainModel in project cuba by cuba-platform.
the class QueryTransformerAstBasedTest method testJoin.
@Test
public void testJoin() throws RecognitionException {
DomainModel model = prepareDomainModel();
QueryTransformerAstBased transformer = new QueryTransformerAstBased(model, "select h from sec$GroupHierarchy h where h.group = :par");
transformer.addJoinAndWhere("join h.parent.constraints c", "c.createdBy = :par2");
String res = transformer.getResult();
assertEquals("select h from sec$GroupHierarchy h join h.parent.constraints c where (h.group = :par) and (c.createdBy = :par2)", res);
transformer.reset();
transformer.addJoinAndWhere("left join h.parent.constraints c", "c.createdBy = :par2");
res = transformer.getResult();
assertEquals("select h from sec$GroupHierarchy h left join h.parent.constraints c where (h.group = :par) and (c.createdBy = :par2)", res);
transformer.reset();
transformer.addJoinAndWhere(",sec$Constraint c", "c.createdBy = :par2");
res = transformer.getResult();
assertEquals("select h from sec$GroupHierarchy h, sec$Constraint c where (h.group = :par) and (c.createdBy = :par2)", res);
}
use of com.haulmont.cuba.core.sys.jpql.DomainModel in project cuba by cuba-platform.
the class QueryTransformerAstBasedTest method getResult_noChangesMade_withGroupByHavingOrderBy.
@Test
public void getResult_noChangesMade_withGroupByHavingOrderBy() throws RecognitionException {
EntityBuilder builder = new EntityBuilder();
JpqlEntityModel playerEntity = builder.produceImmediately("Player", "name", "nickname", "level");
builder.startNewEntity("Team");
builder.addCollectionReferenceAttribute("players", "Player");
builder.addStringAttribute("title");
JpqlEntityModel team = builder.produce();
DomainModel model = new DomainModel(playerEntity, team);
assertTransformsToSame(model, "select p from Team t join t.players p " + "group by p.level having p.level > 0 order by p.level");
}
use of com.haulmont.cuba.core.sys.jpql.DomainModel in project cuba by cuba-platform.
the class QueryTransformerAstBasedTest method getResult_noChangesMade_withCase.
@Test
public void getResult_noChangesMade_withCase() throws RecognitionException {
EntityBuilder builder = new EntityBuilder();
JpqlEntityModel playerEntity = builder.produceImmediately("Player", "name", "nickname");
DomainModel model = new DomainModel(playerEntity);
assertTransformsToSame(model, "select case when p.nickname is null then p.name else p.nickname end from Player p");
}
use of com.haulmont.cuba.core.sys.jpql.DomainModel in project cuba by cuba-platform.
the class QueryTransformerAstBasedTest method getResult_noChangesMade_withGroupBy.
@Test
public void getResult_noChangesMade_withGroupBy() throws RecognitionException {
EntityBuilder builder = new EntityBuilder();
JpqlEntityModel playerEntity = builder.produceImmediately("Player", "name", "nickname", "level");
DomainModel model = new DomainModel(playerEntity);
assertTransformsToSame(model, "select p from Player p group by p.level, p.name");
assertTransformsToSame(model, "select p from Player p group by p.level");
}
Aggregations