получить по дочерним свойствам упорядоченные списки с greenDao - PullRequest
0 голосов
/ 30 марта 2020

Я использую 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 трофея.

Как я могу это сделать?

...