5
我有一個HQL查詢:解析HQL到AST結構和轉換AST回HQL
query = select item.itemNumber from items item where item.stock>0 and item.price<100.00
我喜歡來解析該查詢,並將其轉換成一個樹狀結構:
AST queryTree = parse(query);
比我喜歡遍歷節點,更改一些值,並將樹轉換回字符串表示形式:
Iterator<ASTNode> it = queryTree.nodeIterator();
while(it.hasNext())
{
ASTNode node = it.next();
System.out.println(node.text() + "->" + node.value());
}
query = queryTree.toString();
這將是很好,如果t他解析方法會在HQL語法被違反的情況下拋出異常,但並不是必需的。 有沒有人知道如何實現這一點?是否有任何通過休眠提供的API方法來完成該任務?
感謝,