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

Java 将HQL解析为AST结构并将AST转换回HQL,java,hibernate,parsing,hql,Java,Hibernate,Parsing,Hql,我有一个HQL查询: query = select item.itemNumber from items item where item.stock>0 and item.price<100.00 然后,我喜欢遍历节点,更改一些值,并将树转换回字符串表示: Iterator<ASTNode> it = queryTree.nodeIterator(); while(it.hasNext()) { ASTNode node = it.next(); System.

我有一个HQL查询:

query = select item.itemNumber from items item where item.stock>0 and item.price<100.00
然后,我喜欢遍历节点,更改一些值,并将树转换回字符串表示:

Iterator<ASTNode> it = queryTree.nodeIterator();
while(it.hasNext())
{
  ASTNode node = it.next();
  System.out.println( node.text() + "->" + node.value() );
}
query = queryTree.toString();
Iterator it=queryTree.nodeIterator();
while(it.hasNext())
{
ASTNode node=it.next();
System.out.println(node.text()+“->”+node.value());
}
query=queryTree.toString();
如果在违反HQL语法的情况下,parse方法会抛出异常,那就好了,但这不是必需的。 有人知道如何做到这一点吗?hibernate是否提供了任何API方法来完成该任务


谢谢,

您可以在这里查看正在开发的新实验解析器:

Iterator<ASTNode> it = queryTree.nodeIterator();
while(it.hasNext())
{
  ASTNode node = it.next();
  System.out.println( node.text() + "->" + node.value() );
}
query = queryTree.toString();