0
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 ?

我还需要知道如何获取表格的特定列。

4

1 回答 1

0

抱歉打扰各位了

好吧,我怀疑是否应该有一个名为 getOrderLine() 的 getter 方法,它给出了 OrderLine Object(Table) 所以我所做的是我反编译 OrderLine.class 文件以确保我发现的是 OrderLine 对象与名为 getSalesOrder 的方法映射() 给出 OrderLine 对象。

谢谢你的时间。

于 2015-08-20T08:38:11.000 回答