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 中创建网络服务。
以上工作正常,但我无法理解使用 getSalesOrder 获取上表(对象),因为 C_Orderline 中没有列(主键)名称 SalesOrder
那么我有映射对象和表映射的基本知识。
问题:为什么 getSalesOrder() 用于获取 object(table-C_Orderline) 即使没有表名 SalesOrder ?
我还需要知道如何获取表格的特定列。