"查询 - 环"从数据库

时间:2016-05-31 13:13:24

标签: java database jpa jpql

所以我将不得不解释我正在寻找的内容,我将使用一个非常笼统的例子,这样可以帮助其他人解决同样的问题:

让我们假设我在警察局工作,并且我正在创建一个名为"警察局"我国警方有3个警察局。

那些站点要尽可能高效,因此他们会选择那些事件,如果他们在我们的例子中填写了一些参数,那么这3个警察局:

  • policeStation:1010

    • 罪犯:谷芽
    • 地点:GB(iso-code)
    • 不法行为:谋杀
  • policeStation:2020

    • 罪犯:谷芽
    • 地点:*(* ="不相关")
    • 不法行为:谋杀
  • policeStation:3030

    • 罪犯:GuyB
    • 的地方:*
    • 不法行为:*

所以现在,我有一个看起来像这样的方法(有人可以编辑这个code thing在我添加它时不起作用):

public String responsiblePoliceStation(String offender, String place, String delict) {
    Query q = em.createQuery("SELECT a.Policestation FROM PoliceStations a WHERE a.offender = :offender AND a.place = :place AND a.delict = :delict );
    q.setParameter("offender", offender);
    q.setParameter("place", place);
    q.setParameter("delict", delict);

    String policestation = (String) q.getSingleResult();

    return policestation;
}

所以现在我可以用这个方法调用该方法:

PSPRouteService psp = new PSPRouteService();
String pS = psp.responsiblePoliceStation("GuyA", "GB", "murder");

`

这样可以正常工作,我会得到一个回应,警察用字符串1010必须"解决"这个事件....但正如我在标题中所预期的那样我想要一个循环,例如假设我有这个事件:

  • 罪犯:GuyA
  • 地点:巴西
  • 不法行为:谋杀
然后这不会起作用,因为我不知道如何实现,如果某些参数不适合那么只需将它与下一行进行比较,看看下一个警察是否更宽容并且不关心例如事件是否发生。

所以我想要一个查询循环,我将给定的参数与我的数据库进行比较,如果某些东西不适合我只是跳到下一行比较那个,如果不适合我继续前进到下一个,如上所示第三个警察局更宽容他们不关心,发生什么事情以及如果罪犯是GuyB他们只是采取了这个事件......所以任何想法和tipps如何实现?

0 个答案:

没有答案