Nella mia applicazione ho una relazione progettata in questo modo: e sto provando a selezionare tutte le chat che hanno almeno un utente come amico.Domande deepDao profonde con n: m relazioni
sostanza, voglio per eseguire questa query:
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
io non sono riuscito a trovare un modo per eseguire questo nelle biblioteche GreenDao e speravo che qualcuno sarà in grado di aiutarmi con questo.
EDIT:
Questo è ciò che ho fino ad ora:
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());
}
}
penso 'T' è già adottate dalla il 'QueryBuilder' – thepoosh
Questo è giusto e usarlo è apposta. 'queryRawCreate()' costruisce una query come questa 'SELECT T. * FROM YourTable T'. Quindi puoi estendere la clausola 'FROM' e aggiungere una clausola' where'. – AlexS
oh, ok ... l'ho provato e ho fallito. riproverò presto – thepoosh