use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.
the class QualifierTranslatorIT method testCompoundPK.
@Test
public void testCompoundPK() {
CompoundPkTestEntity testEntity = ObjectSelect.query(CompoundPkTestEntity.class).selectFirst(context);
assertNotNull(testEntity);
ObjectSelect<CompoundFkTestEntity> query = ObjectSelect.query(CompoundFkTestEntity.class).where(CompoundFkTestEntity.TO_COMPOUND_PK.eq(testEntity)).and(CompoundFkTestEntity.NAME.like("test%")).and(CompoundFkTestEntity.NAME.contains("a"));
DefaultSelectTranslator translator = new DefaultSelectTranslator(query, runtime.getDataDomain().getDefaultNode().getAdapter(), context.getEntityResolver());
QualifierTranslator qualifierTranslator = translator.getContext().getQualifierTranslator();
Node node = qualifierTranslator.translate(query.getWhere());
SQLGenerationVisitor visitor = new SQLGenerationVisitor(new StringBuilderAppendable());
node.visit(visitor);
assertEquals(" ( ( ( t0.F_KEY1 = 'PK1' ) AND ( t0.F_KEY2 = 'PK2' ) ) AND t0.NAME LIKE 'test%' ) AND t0.NAME LIKE '%a%'", visitor.getSQLString());
}
use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.
the class QualifierTranslationStageTest method perform.
@Test
public void perform() {
QualifierTranslationStage stage = new QualifierTranslationStage();
stage.perform(context);
assertNotNull(context.getQualifierNode());
// Content of "Qualifier" node:
//
// OpExpression
// / \
// Column Value
Node op = context.getQualifierNode();
assertThat(op, instanceOf(OpExpressionNode.class));
assertEquals(">=", ((OpExpressionNode) op).getOp());
assertEquals(2, op.getChildrenCount());
assertThat(op.getChild(0), instanceOf(ColumnNode.class));
assertThat(op.getChild(1), instanceOf(ValueNode.class));
ColumnNode columnNode = (ColumnNode) op.getChild(0);
ValueNode valueNode = (ValueNode) op.getChild(1);
assertEquals("path", columnNode.getColumn());
assertEquals(10, valueNode.getValue());
}
Aggregations