@Test public void testBuildExpression_01() { String query = "UPDATE Employee e SET e.name = 'Pascal'"; JPQLExpression jpqlExpression = JPQLQueryBuilder.buildQuery(query); // UpdateStatement Expression expression = jpqlExpression.getQueryStatement(); assertTrue(expression instanceof UpdateStatement); UpdateStatement updateStatement = (UpdateStatement) expression; // UpdateClause expression = updateStatement.getUpdateClause(); assertTrue(expression instanceof UpdateClause); UpdateClause updateClause = (UpdateClause) expression; // UpdateItem expression = updateClause.getUpdateItems(); assertTrue(expression instanceof UpdateItem); UpdateItem updateItem = (UpdateItem) expression; assertTrue(updateItem.hasEqualSign()); assertEquals("e.name = 'Pascal'", updateItem.toParsedText()); // StateFieldPathExpression expression = updateItem.getStateFieldPathExpression(); assertTrue(expression instanceof StateFieldPathExpression); StateFieldPathExpression stateFieldPathExpression = (StateFieldPathExpression) expression; assertEquals("e.name", stateFieldPathExpression.toParsedText()); // StringLiteral expression = updateItem.getNewValue(); assertTrue(expression instanceof StringLiteral); StringLiteral stringLiteral = (StringLiteral) expression; assertEquals("'Pascal'", stringLiteral.toParsedText()); }
@Test public void testBuildExpression_02() { String query = "UPDATE Employee e SET e.name = 'Pascal', e.manager.salary = 100000"; JPQLExpression jpqlExpression = JPQLQueryBuilder.buildQuery(query); // UpdateStatement Expression expression = jpqlExpression.getQueryStatement(); assertTrue(expression instanceof UpdateStatement); UpdateStatement updateStatement = (UpdateStatement) expression; // UpdateClause expression = updateStatement.getUpdateClause(); assertTrue(expression instanceof UpdateClause); UpdateClause updateClause = (UpdateClause) expression; // CollectionExpression expression = updateClause.getUpdateItems(); assertTrue(expression instanceof CollectionExpression); CollectionExpression collectionExpression = (CollectionExpression) expression; assertEquals(2, collectionExpression.childrenSize()); // Item 1: UpdateItem expression = collectionExpression.getChild(0); assertTrue(expression instanceof UpdateItem); UpdateItem updateItem = (UpdateItem) expression; assertTrue(updateItem.hasEqualSign()); assertEquals("e.name = 'Pascal'", updateItem.toParsedText()); // StateFieldPathExpression expression = updateItem.getStateFieldPathExpression(); assertTrue(expression instanceof StateFieldPathExpression); StateFieldPathExpression stateFieldPathExpression = (StateFieldPathExpression) expression; assertEquals("e.name", stateFieldPathExpression.toParsedText()); // StringLiteral expression = updateItem.getNewValue(); assertTrue(expression instanceof StringLiteral); StringLiteral stringLiteral = (StringLiteral) expression; assertEquals("'Pascal'", stringLiteral.toParsedText()); // Item 1: UpdateItem expression = collectionExpression.getChild(1); assertTrue(expression instanceof UpdateItem); updateItem = (UpdateItem) expression; assertTrue(updateItem.hasEqualSign()); assertEquals("e.manager.salary = 100000", updateItem.toParsedText()); // StateFieldPathExpression expression = updateItem.getStateFieldPathExpression(); assertTrue(expression instanceof StateFieldPathExpression); stateFieldPathExpression = (StateFieldPathExpression) expression; assertEquals("e.manager.salary", stateFieldPathExpression.toParsedText()); // NumericLiteral expression = updateItem.getNewValue(); assertTrue(expression instanceof NumericLiteral); NumericLiteral numericLiteral = (NumericLiteral) expression; assertEquals("100000", numericLiteral.toParsedText()); }