Hey there,
I'm facing an issue with saving data to my database and I can't seem to figure out the problem. The QueryBuilder for And-, Or-, and OrAnd-Select seems to be identical in code. I've written the QueryBuilder for And-select, Or-select, and OrAnd-select in that specific order consecutively.However, while saving data works perfectly fine for And-select and OR-select, it fails for OrAnd-select. As you can see in the image provided, the data doesn't get saved in the database User_DataDb successfully. Any help would be appreciated!
Thanks a lot in advance.
View the image description here
I keep getting this error:
EXCEPTION: Uncaught (in promise): Error: Current operation has not been finished.
withLock@http://localhost:3000/main.bundle.js:21238:31 [angular]
_save@http://localhost:3000/main.bundle.js:11260:12 [angular]
update@http://localhost:3000/main.bundle.js:11097:12 [angular]
update@http://localhost:3000/main.bundle.js:12956:14 [angular]
ac_main</NoSqlComponent.prototype.submit/promise</</<@http://localhost:3000/main.bundle.js:29457:21 [angular]
onInvoke@http://localhost:3000/vendor.dll.js:30326:28 [angular]
polyfills_lib</</</Zone.prototype.run@http://localhost:3000/polyfills.dll.js:4133:24 [angular => angular]
scheduleResolveOrReject/<@http://localhost:3000/polyfills.dll.js:4720:52 [angular]
onInvokeTask@http://localhost:3000/vendor.dll.js:30317:28 [angular]
polyfills_lib</</</ZoneDelegate.prototype.invokeTask@http://localhost:3000/polyfills.dll.js:4373:17 [angular]
polyfills_lib</</</Zone.prototype.runTask@http://localhost:3000/polyfills.dll.js:4173:28 [<root> => angular]
drainMicroTaskQueue@http://localhost:3000/polyfills.dll.js:4553:25 [<root>]
ZoneTask/this.invoke@http://localhost:3000/polyfills.dll.js:4431:25 [<root>]
This is my code snippet
/////////////// queryBuilder for And-Select
var queryBuilderAnd = db.NoSqlDB.find();
var techniques = queryBuilderAnd
.in('techniques', this.arrStrTchn);
var functional = queryBuilderAnd
.in('functional', this.arrStrFn);
var nonFunctional = queryBuilderAnd
.in('nonFunctional', this.arrStrNFn);
var promiseAnd = queryBuilderAnd.and(techniques, functional, nonFunctional)
.resultList()
.then((nosqlDbAnd) => {
console.log(nosqlDbAnd);
this.nosqlDbsAnd = nosqlDbAnd;
console.log("this.nosqlDbsAnd ", this.nosqlDbsAnd);
this.nosqlDbsAnd.forEach(
(and) => {
console.log("and: " + and.id);
db.NoSqlDB.find()
.equal('id', and.id)
.resultList((result) => {
result.forEach((todo) => {
and.select_and = JSON.parse(JSON.stringify(this.andselected));
if (and.users_and === null) {
and.users_and = new Set();
}
and.users_and.add(db.User.me);
return and.update();
});
});
new db.User_DataDb(
{
functional_select: this.functionalCatObj, nonfunctional_select: this.nfunctionalCatObj,
techniques_select: this.techniquesCatObj, functional_unselect: this.functionalUnsCatObj,
nonfunctional_unselect: this.nfunctionalCatObj, techniques_unselect: this.techniquesUnsCatObj,
ref_NosqlDbAnd: [and.id]
}).insert()
.then((todo1) => {
console.log("todo1.id: ", todo1.id);
db.User_DataDb.find()
.where({
'ref_NosqlDbAnd': and.id,
'id': todo1.id
})
.resultList((result) => {
result.forEach(
(todo2) => {
if (todo2.user_and === null) {
todo2.user_and = new Set();
}
todo2.user_and.add(db.User.me);
return todo2.save({ refresh: true });
});
});
});
});
});
/////////////// queryBuilder for OR-Select
var queryBuilderOr = db.NoSqlDB.find();
var techniques = queryBuilderOr
.in('techniques', this.arrStrTchn);
var functional = queryBuilderOr
.in('functional', this.arrStrFn);
var nonFunctional = queryBuilderOr
.in('nonFunctional', this.arrStrNFn);
var promiseOr = queryBuilderOr.or(techniques, functional, nonFunctional)
.resultList()
.then((nosqlDbOr) => {
console.log(nosqlDbOr);
this.nosqlDbsOr = nosqlDbOr;
console.log("this.nosqlDbsOr ", this.nosqlDbsOr);
this.nosqlDbsOr.forEach(
(or) => {
db.NoSqlDB.find()
.equal('id', or.id)
.resultList((result) => {
result.forEach((todo) => {
or.select_or = JSON.parse(JSON.stringify(this.orselected));
if (or.users_or === null) {
or.users_or = new Set();
}
or.users_or.add(db.User.me);
return or.update();
});
});
new db.User_DataDb(
{
functional_select: this.functionalCatObj, nonfunctional_select: this.nfunctionalCatObj,
techniques_select: this.techniquesCatObj, functional_unselect: this.functionalUnsCatObj,
nonfunctional_unselect: this.nfunctionalCatObj, techniques_unselect: this.techniquesUnsCatObj,
ref_NosqlDbOr: [or.id]
}).insert()
.then((todo1) => {
console.log("todo1.id: ", todo1.id);
db.User_DataDb.find()
.where({
'ref_NosqlDbOr': or.id,
'id': todo1.id
})
.resultList((result) => {
result.forEach(
(todo2) => {
if (todo2.user_or === null) {
todo2.user_or = new Set();
}
todo2.user_or.add(db.User.me);
return todo2.save({ refresh: true });
});
});
});
});
});