为什么没有JSON输出用于过滤查询?

时间:2014-01-24 21:28:30

标签: java json hibernate jsp struts2

我遇到的问题是,如果我在DAO中修改或过滤查询,则JSON结果不会到来,否则它正在运行。但我需要过滤查询。所有细节都是:

表详情:地址(地址ID,道路,州,代码)

实体模型(Address.java):

@Entity
public class Address(){
    @Id
    int addressID;
    String code;    

    //getter + setter methods   
}

我只需要addressIDcode,只需要这两个字段。所以,我只映射了这两个,我不需要其他字段。

动作类(JSONData.java):

public class JSONData extends ActionSupport{

    private List<Address> address;
    //getter, setter

    public String jsonFormatDate() {

        AddressDAO dao = new AddressDAO();
        address = dao.listOfAllAddresses();

        return SUCCESS;
    }

}

DAO类(AddressDAO.java):

public class AddressDAO{

    public List<Address> listOfAllAddresses() { 
        .....
        List list = s.createQuery("from Address").list();
        .....
        return list;
    }

}

如果我使用查询"from Address",那么JSON输出成功,我可以轻松地使用该结果来呈现JSP页面。

但是如果我像"select a.addressID, a.code from Address a"那样修改查询和过滤器,那么就没有JSON输出。此外,如果我也使用where子句,那么没有JSON输出。如果我运行此表单DAO层,查询将执行正确的输出。但不是来自JSON。

我需要包含哪些内容才能通过使用某些过滤规则来获取JSON输出。

1 个答案:

答案 0 :(得分:0)

您可以在查询中使用where子句按条件过滤行。例如

Query q = s.createQuery("from Address as a where a.code = ?");
q.setParameter(0, value);
List list = q.list();