rdb-demo
Version:
ORM examples for npmjs.org/package/rdb
35 lines (30 loc) • 1.24 kB
JavaScript
let rdb = require('rdb');
let resetDemo = require('../db/resetDemo');
let Order = rdb.table('_order');
Order.primaryColumn('oId').guid().as('id');
Order.column('oOrderNo').string().as('orderNo');
Order.column('oCustomerId').guid().as('customerId');
let Customer = rdb.table('_customer');
Customer.primaryColumn('cid').guid().as('id');
Customer.column('cName').string().as('name');
Customer.column('cBalance').string().as('balance');
Customer.column('cIsActive').boolean().as('isActive');
let orderCustomerJoin = Order.join(Customer).by('oCustomerId').as('customer');
Customer.hasMany(orderCustomerJoin).as('orders');
let db = rdb('postgres://rdb:rdb@localhost/rdbdemo');
module.exports = async function() {
try {
await resetDemo();
await db.transaction(async () => {
let filter = {
sql: 'exists (select 1 from _customer where _customer.cId = oCustomerId and _customer.cBalance > 3000 and _customer.cName LIKE ?)',
parameters: ['%o%']
};
let orders = await Order.getMany(filter);
let strategy = { customer: null }
console.log(await orders.toDto(strategy));
});
} catch (e) {
console.log(e.stack);
}
}();