0
我在Oracle DBMS中有一个表,其中的主键增加了一个Oracle序列。该表由我公司的一些应用程序使用。在Loopbackjs模型中映射Oracle序列
我想要使用框架Loopback.io(Node.js)来构建API。我如何在这个新的Loopback API中配置这个序列的名称?
我在Oracle DBMS中有一个表,其中的主键增加了一个Oracle序列。该表由我公司的一些应用程序使用。在Loopbackjs模型中映射Oracle序列
我想要使用框架Loopback.io(Node.js)来构建API。我如何在这个新的Loopback API中配置这个序列的名称?
我已经找到了以下解决方案:
我创建了一个,对于我的序列的下一个值执行本机查询服务器目录中的文件OracleSequence.js:
class OracleSequence{
\t constructor(name) {
\t \t this._sequenceName = name;
\t }
\t
\t nextVal(dataSource,cb){
\t \t let valor = -1;
\t \t dataSource.connector.execute(`SELECT ${this._sequenceName}.nextval FROM dual`,null,function(error,resultado){
\t \t \t if(error){
\t \t \t \t console.log(error);
\t \t \t \t throw Error(`Fail to execute sequence ${this._sequenceName}`);
\t \t \t }
\t \t \t cb(resultado[0].NEXTVAL);
\t \t });
\t }
}
module.exports = OracleSequence
然后我把它叫做在我的模型钩:
const OracleSequence = require("../../server/OracleSequence");
module.exports = function(Valadares) {
Valadares.observe('before save',function setaID(ctx,next){
if(ctx.isNewInstance){
let sequence = new OracleSequence("SQ_VALADARES");
sequence.nextVal(ctx.Model.app.dataSources['oracleDS'],function(id){
ctx.instance.idGV = id;
next();
});
} else{
next();
}
}); \t
};