Android 绿色Dao插入不生成id

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

我有一个简单的模型,我通过GreenDao将它插入sqlite。以下是模型类:

@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的所有表格,或以以下方式重新创建所有表格: 如果需要,请参阅下一个有类似问题的链接: