]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/dao/CurrencyDAO.java
Room-based profile management
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / dao / CurrencyDAO.java
index f650ff2d7a8ca307c5f48c5a38d98f2268e3d948..b9d186166495985d1565dd752614467b0a14ee6e 100644 (file)
@@ -21,6 +21,7 @@ import androidx.lifecycle.LiveData;
 import androidx.room.Dao;
 import androidx.room.Delete;
 import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
 import androidx.room.Query;
 import androidx.room.Update;
 
@@ -29,21 +30,27 @@ import net.ktnx.mobileledger.db.Currency;
 import java.util.List;
 
 @Dao
-public interface CurrencyDAO {
-    @Insert
-    void insert(Currency... items);
+public abstract class CurrencyDAO extends BaseDAO<Currency> {
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    abstract long insertSync(Currency item);
 
     @Update
-    void update(Currency... items);
+    abstract void updateSync(Currency item);
 
     @Delete
-    void delete(Currency item);
+    public abstract void deleteSync(Currency item);
 
     @Query("SELECT * FROM currencies")
-    LiveData<List<Currency>> getCurrencies();
+    public abstract LiveData<List<Currency>> getAll();
 
     @Query("SELECT * FROM currencies WHERE id = :id")
-    LiveData<Currency> getCurrencyById(Long id);
+    abstract LiveData<Currency> getById(long id);
+
+    @Query("SELECT * FROM currencies WHERE id = :id")
+    public abstract Currency getByIdSync(long id);
+
+    @Query("SELECT * FROM currencies WHERE name = :name")
+    public abstract LiveData<Currency> getByName(String name);
 
 //    not useful for now
 //    @Transaction