在一个网络项目中,我有一个复杂的表单来构建动态查询。当我编写这段代码时,我只有 JPA 1(没有 Criteria API),所以我动态构建查询字符串(但仍然使用绑定(bind)参数)。到目前为止效果很好。现在我想保存查询(不是结果),以便用户稍后可以重新运行相同的查询。
理想情况下,我只将查询字符串存储在数据库中。在构建查询时,我可以确保只使用 ID(不是“where user = :user”而是“where user.id = :userid”)。
由于参数的输入来自用户,我喜欢使用查询参数,以避免'little bobby tables' .
有没有简单的方法来做到这一点?
最佳答案
我不确定为什么这是个问题,因为我认为您没有理由只创建一个表来存储查询。 棘手的部分必须在 1)从某处获取可用参数。如果需要,也许您可以将其存储在参数表中。 2) 决定设置哪些参数。只需找到查询查询中的所有 :parameters,看看您是否获得了该参数并将其设置在查询中。
我错过了什么?
关于java - 存储动态 JPA 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030211/