Broken Insert id новых строк - PullRequest
0 голосов
/ 06 октября 2018

Я пользуюсь Room.У меня есть этот метод вставки:

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(Month month);

Мой метод вставки:

for(...){
...
monthDao.insert(new Month(0, monthTitle, monthUrl));
}

Также моя модель

@Entity(tableName = "news_month_table", indices = @Index(value = {"month_index"}, unique = true))
public class Month {

@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "month_id")
@Getter @Setter
public long month_id;
@ColumnInfo(name = "month_name")
@Getter @Setter
public String monthName;
@ColumnInfo(name = "month_url")
@Getter @Setter
public String monthURL;
@ColumnInfo(name = "month_index")
@Getter @Setter
public int monthIndex;

Моя ситуация: 1) Запустите приложение и загрузите+ вставить данные (12 раундов для ()) Теперь база верна и содержит 12 строк с 1-12 идентификаторами.2) У меня есть новые данные (например, для одной строки).Запустите приложение и загрузите + вставьте данные.Теперь база содержит 13 строк с 1-12 и 24 идентификаторами.

Не знаю, в чем проблема, помогите пожалуйста

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Вы можете вставить новые элементы с помощью этого кода:

MonthDao.insert(new Month(monthDao.getLastMonthId()+1, monthTitle, monthUrl, mIndex));

...

@Query("SELECT * FROM news_month_table ORDER BY month_id DESC LIMIT 1;")
int getLastMonthId();

Просто способ решения проблемы.

0 голосов
/ 12 октября 2018

Я думаю, что проблема касается уникального индекса для атрибута monthIndex.Пожалуйста, проверьте, как вы устанавливаете значение этого атрибута.Проверьте в вашей базе данных значение соответствующего столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...