![]() |
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(它的几个内部类)有一个很好的:
但从修改后的
|
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |
![]() |
Bioinfotec · 如何在R中将两个嵌套列表合并为一个列表? 5 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
ep84 · Python中处理扩展线性序列的快速(最快)方法 11 月前 |
![]() |
Gerry · python中高效的Merge排序实现 1 年前 |
![]() |
Noel · C#通过引用返回结构导致复制 1 年前 |