1

How can we store an nested JSON object in SQLite database. In Android Room we used to have Embedded and Relation to store and retrieve complex data objects. But in flutter how can we achieve the same? I tried exploring sqflite, floor, and moor. But none seem to help except for Moor, which allows us Map the values to Object using Joins. something like below code.

  Stream<List<TaskWithTag>> watchAllTasks() {
return (select(tasks)
      ..orderBy(
        [
          (t) =>
              OrderingTerm(expression: t.dueDate, mode: OrderingMode.desc),
          (t) => OrderingTerm(expression: t.name),
        ],
      ))
    .join(
      [
        leftOuterJoin(tags, tags.name.equalsExp(tasks.tagName)),
      ],
    )
    .watch()
    .map((rows) => rows.map(
          (row) {
            return TaskWithTag(
              task: row.readTable(tasks),
              tag: row.readTable(tags),
            );
          },
        ).toList());

}

So What exactly is the right way to do this?

2
  • 1
    What are you finding lacking with what you've tried? Commented Jan 24, 2021 at 19:28
  • I am looking for alternative way to implement this. In Moor I cannot reuse my Tables class for API request/response models. Since the table creation format in Moor is different. I know we can create tables with .moor file, but this result in more code. I am looking for optimized way to implement this. Commented Jan 25, 2021 at 4:46

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.