final Product product = OBDal.getInstance().get(Product.class, productID); //got productID using getParameter from url passed by user
if (product == null) {
throw new IllegalArgumentException("Product with id: " + productID + " does not exist");
}
// select lines from C_ORDERLINE table that match the product
final OBCriteria<OrderLine> orderLineList = OBDal.getInstance().createCriteria(OrderLine.class);
orderLineList.add(Restrictions.eq(OrderLine.PROPERTY_PRODUCT, product));//adds object which are equals(product from DB with given product)
final List<BaseOBObject> orders = new ArrayList<BaseOBObject>();
// iterate through the lines
for (OrderLine orderLine : orderLineList.list()) {
// get the order and only add each order once
if (!orders.contains(orderLine.getSalesOrder())) {
orders.add(orderLine.getSalesOrder()); // this adds SalesOrder(i.e C_Orderline table) object in List<BaseOBObject>
}
}
代码来源:[Openbravo Webservice代码] [1]
我正在尝试在Openbravo中创建Web服务。
上面工作正常,但是我无法理解使用getSalesOrder获取上面的表(对象),因为C_Orderline中没有列(主键)名称SalesOrder
我对映射对象和表映射有基本的了解。
问题:为什么getSalesOrder()用于获取对象(table-C_Orderline),即使没有表名SalesOrder?
此外,我需要知道如何获取表格的特定列。
答案 0 :(得分:0)
很抱歉打扰你们
我怀疑应该有一个名为getOrderLine()的getter方法,它给出OrderLine对象(表),所以我做的是我反编译OrderLine.class文件,以确保我发现的是OrderLine对象被映射到mehod调用了getSalesOrder(),它给出了OrderLine对象。
感谢您的时间。