VS

Size: a a a
VS
QH
ДР
GT
RC
QH
p
p
VS
АА
for (Picture picture : pictures) {
long id = PictureInsertOrUpdate(picture);
Picture pic = this.pictureDao.findById(id);
this.viewPictureDao.insert(new ViewPicture(viewName, id));
}
Подскажите, почему на последней строке FOREIGN KEY constraint failed (code 787)
.@Entity(tableName = "view_picture",
foreignKeys = {@ForeignKey(entity = Picture.class,
parentColumns = "id",
childColumns = "pictureId")
},indices = {@Index(value = {"viewName", "pictureId"},
unique = true)})
public class ViewPicture {
@PrimaryKey(autoGenerate = true)
@NonNull
public int id;
public final String viewName;
public final long pictureId;
public ViewPicture(String viewName, long pictureId) {
this.viewName = viewName;
this.pictureId = pictureId;
}
}
Инсерт в эту таблицу:@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(ViewPicture viewPicture);
OP
for (Picture picture : pictures) {
long id = PictureInsertOrUpdate(picture);
Picture pic = this.pictureDao.findById(id);
this.viewPictureDao.insert(new ViewPicture(viewName, id));
}
Подскажите, почему на последней строке FOREIGN KEY constraint failed (code 787)
.@Entity(tableName = "view_picture",
foreignKeys = {@ForeignKey(entity = Picture.class,
parentColumns = "id",
childColumns = "pictureId")
},indices = {@Index(value = {"viewName", "pictureId"},
unique = true)})
public class ViewPicture {
@PrimaryKey(autoGenerate = true)
@NonNull
public int id;
public final String viewName;
public final long pictureId;
public ViewPicture(String viewName, long pictureId) {
this.viewName = viewName;
this.pictureId = pictureId;
}
}
Инсерт в эту таблицу:@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(ViewPicture viewPicture);
VP
VP
RC
АА
OP
АА
Executor myExecutor = Executors.newSingleThreadExecutor();
myExecutor.execute(() -> {
for (Picture picture : pictures) {
long id = PictureInsertOrUpdate(picture);
Picture pic = this.pictureDao.findById(id);
this.viewPictureDao.insert(new ViewPicture(viewName, id));
}
});
Z
Executor myExecutor = Executors.newSingleThreadExecutor();
myExecutor.execute(() -> {
for (Picture picture : pictures) {
long id = PictureInsertOrUpdate(picture);
Picture pic = this.pictureDao.findById(id);
this.viewPictureDao.insert(new ViewPicture(viewName, id));
}
});