2014-01-24 4 views
1

У меня проблемы, например, если я изменяю или фильтрую запрос в DAO, тогда результат JSON не наступает, иначе он работает. Но мне нужно отфильтровать запрос. Все детали:Почему нет вывода JSON для отфильтрованного запроса?

Таблица информации: адрес (AddressID, дорога, состояние, код)

Entity модель (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

Вы можете использовать предложение where в запросе для фильтрации строк по условию. Например

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

Я попытался использовать запрос типа «выберите a.addressID из адреса a». Но нет выхода JSON. Но этот же запрос работает, если я попытался использовать консольный режим из класса DAO. – adarksun

+0

Используйте запрос в этом ответе. Для вывода JSON вы должны вернуть результат 'json'. См. [This] (http://stackoverflow.com/a/21350079/573032) ответ. –

+0

Я пробовал этот ответ. Но я все еще смущен. В struts.xml я настроен как «". Итак, я ожидаю результат через поле «адрес» в класс Action. Но он дает только значение поля первичного ключа в результате JSON. Я не получаю значения adressID, используя запрос «select a.addressID from Address a» Итак, где на самом деле мне нужно изменить? – adarksun

Смежные вопросы