【问题标题】:Parse HQL to AST Structure and convert AST back to HQL将 HQL 解析为 AST 结构并将 AST 转换回 HQL
【发布时间】:2011-02-11 02:51:04
【问题描述】:

我有一个 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 语法的情况下 parse 方法会抛出异常,那就太好了,但这不是必需的。 有谁知道如何做到这一点? hibernate 是否提供任何 API 方法来完成该任务?

谢谢,

【问题讨论】:

    标签: java hibernate parsing hql


    【解决方案1】:

    您可以在这里查看正在开发的新实验性解析器:https://github.com/hibernate/hibernate-hql-parser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-13
      • 2014-08-24
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 2011-05-26
      相关资源
      最近更新 更多