如何从DB获取特定对象(表)或列(字段)

时间:2015-08-20 06:49:42

标签: hibernate web-services openbravo

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?

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

1 个答案:

答案 0 :(得分:0)

很抱歉打扰你们

我怀疑应该有一个名为getOrderLine()的getter方法,它给出OrderLine对象(表),所以我做的是我反编译OrderLine.class文件,以确保我发现的是OrderLine对象被映射到mehod调用了getSalesOrder(),它给出了OrderLine对象。

感谢您的时间。