Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/dao/RosterEntryDao.java

36 lines
1.2 KiB
Java

package org.mercury_im.messenger.persistence.room.dao;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.TypeConverters;
import org.mercury_im.messenger.persistence.model.RosterEntryModel;
import org.mercury_im.messenger.persistence.room.type_converter.EntityBareJidConverter;
import org.mercury_im.messenger.persistence.room.model.RoomRosterEntryModel;
import java.util.List;
import static androidx.room.OnConflictStrategy.REPLACE;
@Dao
@TypeConverters(EntityBareJidConverter.class)
public interface RosterEntryDao extends BaseDao<RoomRosterEntryModel> {
/**
* Return a {@link LiveData} wrapping a {@link List} of all {@link RoomRosterEntryModel RosterEntries}
* which are currently found in the database.
* @return
*/
@Query("select * from roster")
LiveData<List<RoomRosterEntryModel>> getAllRosterEntries();
@Query("select * from roster where id = :id")
RoomRosterEntryModel getRosterEntryById(long id);
@Query("select * from roster where accountId = :accountId")
LiveData<List<RoomRosterEntryModel>> getRosterEntriesForAccount(long accountId);
}