我遇到的问题是,如果我在DAO中修改或过滤查询,则JSON结果不会到来,否则它正在运行。但我需要过滤查询。所有细节都是:
表详情:地址(地址ID,道路,州,代码)
实体模型(Address.java):
@Entity
public class Address(){
@Id
int addressID;
String code;
//getter + setter methods
}
我只需要addressID
和code
,只需要这两个字段。所以,我只映射了这两个,我不需要其他字段。
动作类(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输出。
答案 0 :(得分:0)
您可以在查询中使用where
子句按条件过滤行。例如
Query q = s.createQuery("from Address as a where a.code = ?");
q.setParameter(0, value);
List list = q.list();