我有一个 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();
如果 parse 方法在违反 HQL 语法的情况下抛出异常就好了,但这不是必需的。 有谁知道如何做到这一点? hibernate 是否提供任何 API 方法来完成该任务?
谢谢,
最佳答案
您可以在这里查看正在开发的新实验性解析器:https://github.com/hibernate/hibernate-hql-parser
关于java - 将 HQL 解析为 AST 结构并将 AST 转换回 HQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691815/