Witam,
piszę WebService i Klienta. Chciałbym zrobić coś takiego, że w kliencie podaje w jTextField'ach przedział ID i wysyłam odpowiednie zapytanie do WS. Ten to zapytanie wykonuje i zwraca rekordy. Rekordy te wyświetlane są w kliencie w jTable.
Mam taki kod w WS:
@WebMethod(operationName = "selectSample")
public List<Object[]> selectSample(@WebParam(name = "query") String query) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List<Sample> result = session.createQuery(query).list();
HibernateUtil.getSessionFactory().close();
List<Object[]> list = new ArrayList<Object[]>();
for(Sample sample : result) {
Object[] obj = new Object[]{sample.getBand(), sample.getBanda(), sample.getBandacorr()};
list.add(obj);
}
return list;
}
A taki w kliencie:
@Action
public void pokaz() {
WebApp_Service service = new WebApp_Service();
WebApp myws = service.getWebAppPort();
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
int fromId, toId;
while(model.getRowCount() != 0)
model.removeRow(0);
if(jTextField1.getText().equals(""))
fromId = 0;
else
fromId = Integer.parseInt(jTextField1.getText());
if(jTextField2.getText().equals(""))
toId = 0;
else
toId = Integer.parseInt(jTextField2.getText());
String query = "from Sample s where s.sampleid >= " + fromId + " and s.sampleid <= " + toId;
if(fromId >= 6725220 && toId <= 6725300 && fromId <= toId) {
//myws.selectSample(query);
//iteracja to zwroconych rekordach
//model.addRow(rekord);
} else
return;
}
addRow() potrzebuje jako parametru Object[] i dlatego też każdy rekord sprowadzam da takiej postaci i zwracam listę wszystkich rekordów. Teraz muszę ją tylko przeiterować i każdy Object[] z listy wrzucać do addRow(). Tyle, że mimo deklaracji, że zwracam List<Object[]> według klienta zwracam List<AnyTypeArray> i nie wiem jak to przeiterować, żebym miał Object[].