1
2
我以前也做过类似的事情。一些更大的事情浮现在脑海中……
如果你有
那么这棵树就是 Root - AND - Equal - Function(upper) - ColumnReference(column1) - Parameter(param1) - OR - IsNull - ColumnReference(column2) - Between - ColumnReference(column3) - Parameter(param2) - Parameter(param3) 然后,首先遍历树的深度,然后在返回的过程中合并HQL的渲染位。例如,upper函数将期望呈现一个子HQL,然后它将生成
把它传给它的父母。像between这样的东西需要三个child-hql片段。
另外,如果你想要解析一种查询语言(或者其他真正的语言),那么我强烈推荐你 ANTLR . 学习曲线相当陡峭,但有很多示例语法值得一看。 Hth. |
2
0
如果您需要EJB-QL解析器和数据结构,EclipseLink(它的几个内部类)有一个很好的:
但从修改后的
|