Привет, я новичок openbravo. Я хотел бы узнать о возвращаемом объекте из набора результатов запроса HQL. Обычно я мог возвращать список или строку. Когда я пытаюсь вернуть Object, он показывает ошибку, например, не может передать объект в строку.Как вернуть объект с помощью набора результатов запроса HQL в Openbravo
Вот мой объект: ShipmentInOut
private ShipmentInOut getShipment(String documentNo) {
String query = "select id from MaterialMgmtShipmentInOut where documentNo='" + documentNo
+ "' and salesTransaction='Y'";
Query resultset = OBDal.getInstance().getSession().createQuery(query);
List<ShipmentInOut> shpmntCritList = resultset.list();
if (shpmntCritList != null && shpmntCritList.size() > 0) {
return shpmntCritList.get(0);
} else {
throw new OBException("shipment " + documentNo + " not found");
}
}
В приведенном выше даного я получил исключение, поэтому я решил сделать критерии запроса и я написал Критерии equalent запроса выше HQL запрос, но несчастливо, если условие второй части возвращается 0 как результат. Но я не знаю, почему я получаю разные результаты в одном и том же запросе. Вышеупомянутый запрос HQL правильно входит в условие if. но проблема заключается в кастинге.
private ShipmentInOut getShipment(String documentNo) {
log.info()
OBCriteria<ShipmentInOut> shpmntCrit = OBDal.getInstance().createCriteria(ShipmentInOut.class);
shpmntCrit.add(Restrictions.eq(ShipmentInOut.PROPERTY_DOCUMENTNO, documentNo));
shpmntCrit.add(Restrictions.eq(ShipmentInOut.PROPERTY_SALESTRANSACTION, true));
List<ShipmentInOut> shpmntCritList = shpmntCrit.list();
if (shpmntCritList != null && shpmntCritList.size() > 0) {
return shpmntCritList.get(0);
} else {
throw new OBException("shipment " + documentNo + " not found");
}
}
Пожалуйста, помогите мне. Я хотел бы реализовать любой из вышеперечисленных методов. Заранее спасибо
Вы не указали сопоставления классов – carbontax
HQL должен обязательно вернуть вам объект. и в какой строке вы получаете ошибку? –