请原谅我的新手,但我试图使用光滑的方法构建一个完全临时的查询构建器。从我们的API中,我将得到一个代表该表的字符串列表,以及另一个表示表的过滤器的列表,然后一起创建一个查询。希望是我可以采取这些并创建内部联接。我正在尝试做的一个类似的例子是JIRA的高级查询构建器。
我一直在尝试使用反射构建它,但我遇到了很多阻塞问题,我想知道这是否甚至可能。
在代码中,这就是我想要做的事情:
def getTableQueryFor(tbl:String):TableQuery[_] = {
... a matcher that returns a tableQueries?
... i think the return type is incorrect b/c erasure?
}
def getJoinConditionFor:(tbl1:String, tbl2:String) => scala.slick.lifted.Column[Boolean] = (l:Coffees,r:Suppies) => {
...a matcher
}
以下甚至可能吗?
val q1 = getTableQueryFor("coffee")
val q2 = getTableQueryFor("supply")
val q3 = q1.innerJoin.q2.on(getJoinCondition("coffee", "supply")
编辑:修正了语法问题。