Я использую greenDao для моего Android приложения.
У меня есть следующие объекты:
@Entity
public class User {
@Id
@Expose
private Long Id;
@Expose
private String Name;
@ToMany(joinProperty = TrophyId)
private List<Trophy> Trophies;
}
@Entity
public class Trophy {
@Id
@Expose
private Long TrophyId;
@Expose
private String Name;
@ToOne(joinProperty = "DescriptionId")
private String Description;
}
@Entity
public class Description {
@Id
@Expose
private Long DescriptionId;
@Expose
private String Title;
@Expose
private String Text;
}
Теперь я хочу получить список пользователей. Эти пользователи содержат список трофеев. И эти трофеи должны быть упорядочены по свойству title
описания.
У меня есть класс UserRepository для извлечения данных:
public class UserRepository {
private DaoSession daoSession;
public UserRepository() {
//daoSession = ...
}
public List<User> getUsers() {
List<User> users = daoSession.getUserDao().queryBuilder().orderAsc(UserDao.Properties.Name).list();
return users;
}
}
Теперь это возвращает список пользователей, которые упорядочено по именам пользователей. Теперь я также хочу заказать список трофеев. Если бы я хотел упорядочить их по свойству имен трофеев, я мог бы добавить следующее к свойству trophies
:
@ToMany(joinProperty = TrophyId)
@OrderBy("Name asc")
private List<Trophy> Trophies;
, но это не сработает, потому что я хочу упорядочить их по title
свойство description
трофея.
Как я могу это сделать?