尝试使用Jaydata库检索嵌套子级时出错

时间:2018-07-12 07:08:43

标签: jaydata

我确实有我的Jaydata模型

Select  * FROM 
     (Select type from snapshot) AS A where date = CURDATE())
    LEFT JOIN
     (Select type from register) AS B
ON A.type=B.type
WHERE B.type IS NULL

我正在尝试使用以下代码检索包含Inventory和InventoryBins数据的所有产品。

$data.Entity.extend('Razoom.Model.Product', {
    'ProductID': { 'key': true, 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'LocationID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'Code': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 50 },
    'Name': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 150 },
    'Notes': { 'type': 'Edm.String', 'maxLength': 250 },
    'Quantity': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'RetailPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'CostPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'UpdatedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'UpdatedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'SaleAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'SaleTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'PurchaseAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'PurchaseTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'Active': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
    'UnitOfMeasureId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'ItemTypeId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'IsDefaultLabour': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
    'BinId': { 'type': 'Edm.Int32' },
    'ProductPackages': { 'type': 'Array', 'elementType': 'Razoom.Model.ProductPackage', 'inverseProperty': 'Product' },
    'PurchaseTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'PurchaseProducts' },
    'SaleTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'SaleProducts' },
    'PurchaseAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'PurchaseProducts' },
    'SaleAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'SaleProducts' },
    'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'AddedProducts' },
    'User1': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'UpdatedProducts' },
    'Items': { 'type': 'Array', 'elementType': 'Razoom.Model.Item', 'inverseProperty': 'Product' },
    'Location': { 'type': 'Razoom.Model.Location', 'required': true, 'inverseProperty': 'Products' },
    'Notes1': { 'type': 'Array', 'elementType': 'Razoom.Model.Note', 'inverseProperty': 'Product' },
    'Inventories': { 'type': 'Array', 'elementType': 'Razoom.Model.Inventory', 'inverseProperty': 'Product' },
    'ItemType': { 'type': 'Razoom.Model.ItemType', 'required': true, 'inverseProperty': 'Products' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Products' }
});    

$data.Entity.extend('Razoom.Model.Inventory', {
    'InventoryID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
    'ProductID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'DefaultBinID': { 'type': 'Edm.Int32' },
    'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'DeletedUserID': { 'type': 'Edm.Int32' },
    'DeletedDate': { 'type': 'Edm.DateTime' },
    'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'Inventories' },
    'User1': { 'type': 'Razoom.Model.User', 'inverseProperty': 'Inventories1' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Inventories' },
    'Product': { 'type': 'Razoom.Model.Product', 'required': true, 'inverseProperty': 'Inventories' },
    'EventHistories': { 'type': 'Array', 'elementType': 'Razoom.Model.EventHistory', 'inverseProperty': 'Inventory' },
    'InventoryBins': { 'type': 'Array', 'elementType': 'Razoom.Model.InventoryBin', 'inverseProperty': 'Inventory' }
});


$data.Entity.extend('Razoom.Model.InventoryBin', {
    'InventoryBinID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
    'BinID': { 'type': 'Edm.Int32' },
    'InventoryID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'Quantity': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'MinInventoryLevel': { 'type': 'Edm.Decimal' },
    'MaxInventoryLevel': { 'type': 'Edm.Decimal' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'InventoryBins' },
    'Inventory': { 'type': 'Razoom.Model.Inventory', 'required': true, 'inverseProperty': 'InventoryBins' }
});

但总是收到错误消息。

我的问题是

  1. JayData是否支持深度包含?就我而言,一个产品具有多个“库存”,另外一个“库存”具有多个“库存桶”

  2. 我也尝试过

    var ProductResponse = RazoomCoreEntities.Products.include('Inventories').include('Inventories.InventoryBins').map(mapCallback).toArray();
    

    但似乎没有任何效果。有人可以指导我编写正确的代码,或者至少告诉我JayData是否支持深度包含?

请指导我,因为我一直陷在代码中,这可能会使我无法交付项目。任何帮助都是非常有用的。在此先感谢

0 个答案:

没有答案