将HQL解析为AST结构并将AST转换回HQL

时间:2010-04-22 14:45:01

标签: java hibernate parsing hql

我有一个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();

如果在违反HQL语法的情况下解析方法会抛出异常会很好,但这不是必需的。 有谁知道如何实现这一目标?是否有hibernate提供的API方法来完成该任务?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以查看正在处理的新实验解析器:https://github.com/hibernate/hibernate-hql-parser