LitePal无法获取ID

这个标题起的太标题党,不过为了让遇到过相同问题的朋友们能够准确的搜到就只能这样了。
这几天遇到过一个问题,在LitePal模型中进行如下设置

public class CountDown extends LitePalSupport{

    @Column
    private UUID main_id;

    public CountDown() {
    }

    public UUID getmainId() {
        return main_id;
    }

    public void setmainId(int id) {
        this.main_id = main_id;
    }

然而在获取main_id的时候确不能够成功获取,原因是只要model中属性有id这个字符串,就会被默认替代成ID主键,而这个主键是自动生成的。也就是所有含有id的属性都会失效,这也就造成了虽然有set、get方法却不能够获取正确的值。
解决方法:如果仅仅是为了通过一个唯一的键获取数据,那就可以通过如下修改来获取

    private int main_id;

    public CountDown() {
    }

    public int getId() {
        return main_id;
    }

    public void setId(int id) {
        this.main_id = main_id;
    }

虽然这个参数依旧有id这个字符串,但是其get方法是可用的,只需要将其的返回类型设置成主键的类型,也就是int即可。要注意的是,此时set方法是不可用的,因为它是想要设置主键的,所以必然失效。
如果是为了设置一个具有唯一值的属性,那就把id从其中去掉就行。

你可能感兴趣的:(LitePal无法获取ID)