diff --git a/lib/dao.js b/lib/dao.js index 27039309..f5185f03 100644 --- a/lib/dao.js +++ b/lib/dao.js @@ -40,6 +40,9 @@ function DataAccessObject() { DataAccessObject._forDB = function (data) { + if(!this.schema.isRelational()) { + return data; + } var res = {}; Object.keys(data).forEach(function (propName) { if (this.whatTypeName(propName) === 'JSON' || data[propName] instanceof Array) { diff --git a/lib/datasource.js b/lib/datasource.js index 6cc08365..82b14178 100644 --- a/lib/datasource.js +++ b/lib/datasource.js @@ -1271,6 +1271,10 @@ DataSource.prototype.defineOperation = function (name, options, fn) { this._operations[name] = options; } +DataSource.prototype.isRational = function() { + return this.adapter && this.adapter.relational; +} + /** * Define hidden property */ diff --git a/lib/sql.js b/lib/sql.js index 0a351bfa..ffdc611b 100644 --- a/lib/sql.js +++ b/lib/sql.js @@ -6,6 +6,8 @@ module.exports = BaseSQL; function BaseSQL() { } +BaseSQL.prototype.rational = true; + BaseSQL.prototype.query = function () { throw new Error('query method should be declared in adapter'); };