Android 绿色Dao插入不生成id
我有一个简单的模型,我通过GreenDao将它插入sqlite。以下是模型类:Android 绿色Dao插入不生成id,android,sqlite,greendao,Android,Sqlite,Greendao,我有一个简单的模型,我通过GreenDao将它插入sqlite。以下是模型类: @Entity public class ImageModel implements Parcelable { public static final Creator<ImageModel> CREATOR = new Creator<ImageModel>() { @Override public ImageModel createFromParce
@Entity
public class ImageModel implements Parcelable {
public static final Creator<ImageModel> CREATOR = new Creator<ImageModel>() {
@Override
public ImageModel createFromParcel(Parcel in) {
return new ImageModel(in);
}
@Override
public ImageModel[] newArray(int size) {
return new ImageModel[size];
}
};
@Id(autoincrement = true)
private long id;
private String downloadURL;
private String pasteId;
private String storageLocation;
protected ImageModel(Parcel in) {
id = in.readLong();
downloadURL = in.readString();
pasteId = in.readString();
storageLocation = in.readString();
}
@Generated(hash = 345376828)
public ImageModel(long id, String downloadURL, String pasteId,
String storageLocation) {
this.id = id;
this.downloadURL = downloadURL;
this.pasteId = pasteId;
this.storageLocation = storageLocation;
}
@Generated(hash = 799163379)
public ImageModel() {
}
@Override
public String toString() {
return "ImageModel{" +
"id=" + id +
", downloadURL='" + downloadURL + '\'' +
", pasteId='" + pasteId + '\'' +
", storageLocation='" + storageLocation + '\'' +
'}';
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(id);
dest.writeString(downloadURL);
dest.writeString(pasteId);
dest.writeString(storageLocation);
}
@Override
public int describeContents() {
return 0;
}
public String getDownloadURL() {
return this.downloadURL;
}
public void setDownloadURL(String downloadURL) {
this.downloadURL = downloadURL;
}
public String getPasteId() {
return this.pasteId;
}
public void setPasteId(String pasteId) {
this.pasteId = pasteId;
}
public String getStorageLocation() {
return this.storageLocation;
}
public void setStorageLocation(String storageLocation) {
this.storageLocation = storageLocation;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
}
我正试图通过AbstractDao.insert调用插入此ImageModel类的实例,但返回的行id始终为0
我尝试使用Long而不是像github讨论中建议的那样使用Long作为id字段类型:
但这似乎不起作用。非常感谢您的帮助。我也遇到过类似的问题。请执行以下操作: 在id为自动递增的所有表中按长id更改长id。 如果您不使用generator或正在使用Greendao3的@annotations,请删除GreenDAO生成的所有代码,然后清理项目。 请将表格更改为id为autoincrement的所有表格,或以以下方式重新创建所有表格: 如果需要,请参阅下一个有类似问题的链接: