Das Boolesche Array in der Raumdatenbank kann nicht aktualisiert werdenAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Das Boolesche Array in der Raumdatenbank kann nicht aktualisiert werden

Post by Guest »

Ich versuche update ein booleanes Array in der Android -Raum -Datenbank, aber es bringt diesen Fehler
aus

Code: Select all

E/SQLiteLog: (1) near "?": syntax error in "UPDATE alarm_table SET mDaysOfWeekArr=?,?,?,?,?,?,?,? WHERE mAlarmId=?"

Query:(Alarmdao.java)

Code: Select all

    @TypeConverters({Converter.class})
@Query("UPDATE alarm_table SET mDaysOfWeekArr=:daysOfWeekArr WHERE mAlarmId=:alarmId")
void updateRecAlarmStatus(Boolean[] daysOfWeekArr, int alarmId);
< /code>
 Beim Einfügen /Lesen des booleschen Array Die richtigen Werte werden in DB gespeichert (mit Abfrage) < /strong> < /p>
    @Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(AlarmEntity alarmEntity);
< /code>
Raum -DB -Repository (alarmrepository.java) < /p>
    public void updateRecAlarmStatus(final Boolean[] daysOfWeekArr, final int alarmId) {
databaseWriteExecutor.execute(new Runnable() {
@Override
public void run() {
alarmDao.updateRecAlarmStatus(daysOfWeekArr, alarmId);
}
});
}
< /code>
Aufrufen der obigen Funktion mit Onclick von Recyclerview und Lesen von Daten von Entität mit Geters und Änderung der Werte in boolean [] < /p>
daysOfWeek[1] = true;
daysOfWeek[5] = true
ar.updateRecAlarmStatus(daysOfWeekArr, alarmId);
< /code>
Entitätsklasse: (Alarmentity.java) < /p>
@Entity(tableName = "alarm_table")
public class AlarmEntity {

// ID used to disable / enable / delete alarms
@PrimaryKey
private int mAlarmId;

// Trigger time for alarm
private long mAlarmTime;
private boolean mAlarmEnabled;

@TypeConverters({Converter.class})
private Boolean[] mDaysOfWeekArr;

......
...... }
< /code>
TypeConverter < /p>
public class Converter {

// Used by AlarmEntity Boolean[] mDaysOfWeek

@TypeConverter
public static Boolean[] fromString(String value) {
Type listType = new TypeToken() {
}.getType();
Log.e("Converter: ", "fromString Called");
return new Gson().fromJson(value, listType);
}

@TypeConverter
public static String fromBoolean(Boolean[] list) {
Gson gson = new Gson();
Log.e("Converter: ", "fromString Called");
return gson.toJson(list);
}

}
Ich habe zum ersten Mal auf Stackoverflow gefragt. Bitte fragen Sie, ob weitere Informationen/Code erforderlich sind.
Bearbeiten: < /strong>
Nach dem Abnehmen eines Alarmentitätsobjekts von DB und Änderung der Werte
kann ich die Änderungen mit inbuilt @Update Query speichern
Aber diese Abfrage funktioniert nicht ... Ich bin sicher unten gesetzt mdaysofweekarr =: DaysofWeekarr < /code>
ist falsch, aber ich weiß nicht, wie ich es beheben soll < /p>

Code: Select all

    @TypeConverters({Converter.class})
@Query("UPDATE alarm_table SET mDaysOfWeekArr=:daysOfWeekArr WHERE mAlarmId=:alarmId")
void updateRecAlarmStatus(Boolean[] daysOfWeekArr, int alarmId);

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post