var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Order = rdb.table('_order'); var OrderLine = rdb.table('_orderLine'); Order.primaryColumn('oId').guid().as('id'); Order.column('oOrderNo').string().as('orderNo'); OrderLine.primaryColumn('lId').guid().as('id'); OrderLine.column('lOrderId').guid().as('orderId'); OrderLine.column('lProduct').string().as('product'); var line_order_relation = OrderLine.join(Order).by('lOrderId').as('order'); Order.hasMany(line_order_relation).as('lines'); var db = rdb.sqlite(__dirname + '/db/rdbDemo'); var orderIdWithNoLines = 'c0000000-c000-0000-0000-000000000000'; module.exports = resetDemo() .then(db.transaction) .then(insertOrderLine1) .then(insertOrderLine2) .then(verifyUpdated) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function insertOrderLine1() { var line = OrderLine.insert('eeeeeeee-0001-0000-0000-000000000000'); line.orderId = orderIdWithNoLines;
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Order = rdb.table('_order'); var Customer = rdb.table('_customer'); var OrderLine = rdb.table('_orderLine'); var DeliveryAddress = rdb.table('_deliveryAddress'); Order.primaryColumn('oId').guid().as('id'); Order.column('oOrderNo').string().as('orderNo'); Order.column('oCustomerId').string().as('customerId'); Customer.primaryColumn('cId').guid().as('id'); Customer.column('cName').string().as('name'); OrderLine.primaryColumn('lId').guid().as('id'); OrderLine.column('lOrderId').string().as('orderId'); OrderLine.column('lProduct').string().as('product'); DeliveryAddress.primaryColumn('dId').guid().as('id'); DeliveryAddress.column('dOrderId').string().as('orderId'); DeliveryAddress.column('dName').string().as('name'); DeliveryAddress.column('dStreet').string().as('street'); var order_customer_relation = Order.join(Customer).by('oCustomerId').as('customer'); var line_order_relation = OrderLine.join(Order).by('lOrderId').as('order'); Order.hasMany(line_order_relation).as('lines'); var deliveryAddress_order_relation = DeliveryAddress.join(Order).by('dOrderId').as('order'); Order.hasOne(deliveryAddress_order_relation).as('deliveryAddress');
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Customer = rdb.table('_customer'); Customer.primaryColumn('cId').guid().as('id'); Customer.column('cName').string().as('name'); var db = rdb('postgres://*****:*****@localhost/test'); module.exports = resetDemo() .then(db.transaction) .then(tryGetFirst) .then(printCustomer) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function tryGetFirst() { var filter = Customer.name.equal('John'); return Customer.tryGetFirst(filter); } function printCustomer(customer) { if (customer) { console.log('Customer Id: %s, name: %s', customer.id, customer.name); } else console.log('customer not found'); }
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Customer = rdb.table('_customer'); var Order = rdb.table('_order'); Customer.primaryColumn('cId').guid().as('id'); Customer.column('cName').string().as('name'); Order.primaryColumn('oId').guid().as('id'); Order.column('oOrderNo').string().as('orderNo'); Order.column('oCustomerId').guid().as('customerId'); Order.join(Customer).by('oCustomerId').as('customer'); var db = rdb.mySql('mysql://root@localhost/rdbDemo?multipleStatements=true'); module.exports = resetDemo() .then(db.transaction) .then(getOrderWithCustomer) .then(printOrder) .then(printCustomer) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function getOrderWithCustomer() { var fetchingStrategy = {customer : null}; //alternatively: {customer : {}} return Order.getById('a0000000-a000-0000-0000-000000000000', fetchingStrategy); } function printOrder(order) {
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Order = rdb.table('_compositeOrder'); var OrderLine = rdb.table('_compositeOrderLine'); Order.primaryColumn('oCompanyId').numeric().as('companyId'); Order.primaryColumn('oOrderNo').numeric().as('orderNo'); OrderLine.primaryColumn('lCompanyId').numeric().as('companyId'); OrderLine.primaryColumn('lOrderNo').numeric().as('orderNo'); OrderLine.primaryColumn('lLineNo').numeric().as('lineNo'); OrderLine.column('lProduct').string().as('product'); var line_order_relation = OrderLine.join(Order).by('lCompanyId', 'lOrderNo').as('order'); Order.hasMany(line_order_relation).as('lines'); var db = rdb.mySql('mysql://root@localhost/rdbDemo?multipleStatements=true'); module.exports = resetDemo() .then(db.transaction) .then(getOrder) .then(printOrder) .then(printLines) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function getOrder() { var companyId = 1, orderId = 1001;
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Order = rdb.table('_order'); var DeliveryAddress = rdb.table('_deliveryAddress'); Order.primaryColumn('oId').guid().as('id'); Order.column('oOrderNo').string().as('orderNo'); DeliveryAddress.primaryColumn('dId').guid().as('id'); DeliveryAddress.column('dOrderId').string().as('orderId'); DeliveryAddress.column('dName').string().as('name'); DeliveryAddress.column('dStreet').string().as('street'); var deliveryAddress_order_relation = DeliveryAddress.join(Order).by('dOrderId').as('order'); Order.hasOne(deliveryAddress_order_relation).as('deliveryAddress'); var db = rdb('postgres://*****:*****@localhost/test'); module.exports = resetDemo() .then(db.transaction) .then(getOrder) .then(printOrder) .then(printDeliveryAddress) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function getOrder() { return Order.getById('b0000000-b000-0000-0000-000000000000'); }
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var Order = rdb.table('_jOrder'); Order.primaryColumn('oId').guid().as('id'); Order.column('oData').string().as('data'); // Contains JSON data var db = rdb('postgres://*****:*****@localhost/test'); module.exports = resetDemo() .then(db.transaction) .then(getOrder) .then(printOrders) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function getOrder() { var strategy = { orderBy: ['data->\'orderNo\' desc'] }; return Order.getMany(null, strategy); } function printOrders(orders) { orders.forEach(printOrder); function printOrder(order) { var format = 'Order Id: %s, Order Data: %s'; var args = [format, order.id, JSON.stringify(order.data)];
var rdb = require('rdb'), resetDemo = require('./db/resetDemo'); var User = rdb.table('_user'); User.primaryColumn('uId').guid().as('id'); User.column('uUserId').string().as('userId'); User.column('uPassword').string().as('password').serializable(false); User.column('uEmail').string().as('email'); var db = rdb('postgres://*****:*****@localhost/test'); module.exports = resetDemo() .then(db.transaction) .then(getUser) .then(toDto) .then(rdb.commit) .then(null, rdb.rollback) .then(onOk, onFailed); function getUser() { return User.getById('87654400-0000-0000-0000-000000000000'); } function toDto(user) { return user.toDto().then(console.log); //will print all properties except password //because it is not serializable } function onOk() { console.log('Success');