Какие аннотации для методов DAO вы знаете?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Вот основные аннотации для методов в Room DAO:
-
@Query: Используется для выполнения произвольных SQL-запросов. Возвращает данные или количество измененных строк/удалений.@Query("SELECT * FROM users WHERE id = :userId") fun getUserById(userId: Long): User? -
@Insert: Помечает метод для вставки одной или нескольких сущностей в базу данных. Может возвращатьLong(для одного вставленного ID),LongArray(для нескольких) или ничего (Unit).@Insert fun insertUser(user: User): Long -
@Update: Помечает метод для обновления одной или нескольких сущностей в базе данных по их первичному ключу. Возвращает количество обновленных строк (Int).@Update fun updateUser(user: User): Int -
@Delete: Помечает метод для удаления одной или нескольких сущностей из базы данных по их первичному ключу. Возвращает количество удаленных строк (Int).@Delete fun deleteUser(user: User): Int -
@Transaction: Используется для выполнения нескольких операций DAO в одной транзакции. Гарантирует атомарность: либо все операции успешны, либо ни одна не выполняется.@Transaction @Query("SELECT * FROM playlists WHERE creatorId = :creatorId") fun getPlaylistsWithSongsByCreator(creatorId: Long): List<PlaylistWithSongs>