Попробуйте следующее:
Задача класса
@Entity(tableName = "task_table", indices = {@Index(value = "id", unique = true)})
public class Task {
@PrimaryKey(autoGenerate = true)
private int id;
private String description;
private Int parentId; // <- here you should put parent Id, or null if there is no parent
........
}
Класс с отношением
public class TaskWithSubtasks{
@Embedded
Task task;
@Relation(
parentColumn = "id",
entityColumn = "parentId"
)
List<Task> subTasks;
}
Метод Дао
@Query("SELECT * FROM task where id =:id")
TaskWithSubtasks getTaskWithSubTasks(int id);
PS Я сомневаюсь, что вы должны ожидать получения полноуровневой структуры с запросом. Если у вас Task
с подзадачами Task1
и Task2
; и Task1
имеет свою собственную подзадачу Task1_1
, я не думаю, что вы получите Task1
с ней подзадачу Task1_1
только с одним запросом к основному узлу - Task
. Хотя можно попробовать