Java Jersey - 在变量中保存已发布的JSON值

时间:2016-05-29 16:07:02

标签: json jpa jersey

我有一个带有日期字段的类,所以我可以设置并获取日期。 感谢JPA,我可以通过本课程中的任何字段轻松获取数据库排序中的所有类行。

问题在于,我只希望获得日期大于或低于发送值的行。

像这样的东西: SELECT * FROM example WHERE example.date < biggerDate AND example.date > lowerDate;"

我休息了一个功能:

public List<example> getDataBetween(String older, String newer) {
    return em.createQuery("SELECT row FROM example row WHERE row.date < " + older + " and > " + newer).getResultList();
}

所以现在我想发送包含较旧和较新值的JSON。

{ older: '2011-01-01', newer: '2005-01-01' }

我怎样才能在

中获得这些值
@POST
@Path("/getBetween")
@Consumes(MediaType.APPLICATION_JSON)
public List<example> getBetween(***WHAT SHOULD BE HERE?***) {
    //I NEED older and newer here
    return service.getDataBetween(older, newer);
}

我无法将示例设置为getBetween参数,因为Example类没有较旧和较新的字段。我希望这些参数仅用于函数getDataBetween调用。

在这种情况下我怎么能拿JSON?

1 个答案:

答案 0 :(得分:0)

答案是使用JSONObject。

@POST
@Path("/getBetween")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<data> getBetween(JSONObject json) throws JSONException {
    String older = json.get("older").toString();
    String newer = json.get("newer").toString();
    return ds.getDataBetween(older, newer);
}