6
私のアプリケーションには、次のような関係があります。 私は少なくとも1人のユーザーを友人として持つすべてのチャットを選択しようとしています。私はGreenDaoライブラリでこれを実行するための方法を見つけるために管理していないと誰かがこれで私を助けることができるようになります期待していたn:mの関係を持つGreenDaoディープクエリー
SELECT c.* FROM CHAT c, USER u, UserChats uc
WHERE c.type = myType
AND u.isFriend = 1
AND c.id = uc.chatId
AND u.id = uc.userId
:
は基本的に、私はこのクエリを実行します。
EDIT:
これは私が今まで持っているものです:grrendaoは、現時点ではQueryBuilder.join()
-methodsを実装していないので
List<UsersChats> list = usersChatsDao.queryDeep(
"WHERE T0." + UserDao.Properties.isFriend.collumnName + " = ? "+
"AND T1." + ChatDao.Properties.type.collumName + " = ?",
new String[] {"1", myType});
if(list != null && list.isEmpty() == false) {
List<Chat> chats = new ArrayList<Chat>();
for(UsersChats link : list) {
chats.add(link.getChat());
}
}
を私は 'T'がすでにによって取られると思います'QueryBuilder' – thepoosh
これは正しいことです。 'queryRawCreate()'は 'SELECT T. * FROM YourTable T'のようなクエリを作成します。したがって、 'FROM'節を拡張して' where'節を追加することができます。 – AlexS
ああ、ok ...私はそれを試して失敗しました。すぐに再試行します – thepoosh