|
|
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(它的几个内部类)有一个很好的:
但从修改后的
|