Korzystanie sequelize, mam dwa modele ze stowarzyszeniami:sequelize findOrCreate z zawierać assoication
var Assessment = sequelize.define("Assessment", {
name: DataTypes.STRING
});
var User = sequelize.define("User", {
sid: DataTypes.STRING
});
Assessment.belongsTo(User);
User.hasMany(Assessment);
po jakiejś logiki aplikacji, mam User
:
User.findOrCreate({ where: {sid: "123"} }).spread(function (user, created) {
// user is a User
});
W tym momencie nie mogę sequelize aby powiązać użytkownika jako część Assessment.findOrCreate
. Kod ten będzie utworzyć nowy rekord Assessment w bazie danych (jeśli nie istnieje), ale to będzie nie zawierać klucz użytkownika jako część zapisu (zamiast to po prostu null):
Assessment.findOrCreate({
where: { },
include: [ { model: User, where: user.primaryKeyValues } ]
}).spread(function (assessment, created) {
// ...
});
mam obejście działa dodając:
assessment.setUser(user).then(function(assessment) {
...
});
... jednak skutkuje to SQL UPDATE, które powinny być tylko elementem tworzenia rekordu. Jestem prawie pewien, że powinien być sposób, aby to zrobić, ale nie można znaleźć niczego w dokumentacji/so/etc.