プロパティとして別のオブジェクトを持つオブジェクトをクエリするにはどうすればよいですか?私はプロパティの値も取得する必要があります。ここに私のモデルです:他のオブジェクトのプロパティであるオブジェクトをクエリするAndroid sqllite
public class Department {
public int DeptId;
public string DeptName;
}
public class Employee {
public int Id;
public string Name;
public int DeptId;
public Department Department;
}
私はC#の背景から来ており、私はこれをEntity Frameworkを使って行うことができます。今はこのモデルのように思えますが、オブジェクトにsqllite機能を組み込んだとき、どのようにクエリを実行するのか分かりません。
は、ここに私の最初の試みだが、これが最善の方法
public List<Employee> getAllEmployeesWithDepartments(){
List<Employee> employees = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM Employee e LEFT JOIN Department d on e.DeptId = d.Id" , null);
if(res.moveToFirst()){
do{
Employee emp = new Employee();
emp.Id = res.getInt(res.getColumnIndex("Id"));
emp.Name = res.getString(res.getColumnIndex("Name"));
Department dep = new Department();
dep.Id = res.getInt(res.getColumnIndex("Id"));
dep.Name = res.getString(res.getColumnIndex("Name"));
emp.Department = dep;
employees.add(emp);
}while (res.moveToNext());
}
return employees;
}