1
feathersjs-sequelizeとmysqlデータベースを使用してJava/Hibernate/TABLEシーケンス機能https://dzone.com/articles/hibernate-identity-sequenceを再現しようとしています。作成する前にフライトを作成するにはフックを作成するmysql関数を呼び出す
mysql> select generate_pessoa_seq();
+-----------------------+
| generate_pessoa_seq() |
+-----------------------+
| 11 |
+-----------------------+
1 row in set (0,00 sec)
OK:
だから、私は、MySQLで、私は、MySQLのCLIでテストその後
FUNCTION `generate_pessoa_seq`() RETURNS bigint(16)
BEGIN
DECLARE R_ID BIGINT(16);
UPDATE pessoa_seq SET next_value = next_value + 1;
SELECT next_value INTO R_ID FROM pessoa_seq;
RETURN R_ID;
を次の関数を作成しました。今私は "pessoa"と呼ばれる私のテーブルのID値として11を使うことができます。
だから私はアイデア怒鳴る(ペソアフック)
const pessoaBeforeCreateHook = options => { // always wrap in a function so you can pass options and for consistency.
return hook => {
console.log('Pessoa hook ' + hook);
sequelize = hook.app.get('sequelize');
var newId = -1; //forcing an error
sequelize.query('select generate_pessoa_seq();',{ type: sequelize.QueryTypes.SELECT}).then(function(response){
//getNewId();
newId = response;
}).error(function(err){
console.log(err);
newId=-1;
});
hook.data.IdiPessoa=newId;
return Promise.resolve(hook); // A good convention is to always return a promise.
};
};
exports.before = {
all: [],
find: [],
get: [],
create: [pessoaBeforeCreateHook()],
update: [],
patch: [],
remove: []
};
に従うことをしようとしています任意の助けてくれてありがとう。
を参照してくださいhttps://github.com/feathersjs/羽毛/問題/ 512#issuecomment-278051246 – Daff