我遇到的问题是,如果我在 DAO 中修改或过滤查询,则 JSON 结果不会出现,否则它会正常工作。但我需要过滤查询。所有详细信息是:
表格详情:
Address(addressID, road, state, code)
实体模型(
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 输出。
您可以在查询中使用
where
子句按条件过滤行。例如
Query q = s.createQuery("from Address as a where a.code = ?");
q.setParameter(0, value);
List list = q.list();