這個標題起的太標題黨,不過為了讓遇到過相同問題的朋友們能夠準確的搜到就只能這樣了。
這幾天遇到過一個問題,在LitePal模型中進行如下設(shè)置
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方法卻不能夠獲取正確的值。
解決方法:如果僅僅是為了通過一個唯一的鍵獲取數(shù)據(jù),那就可以通過如下修改來獲取
private int main_id;
public CountDown() {
}
public int getId() {
return main_id;
}
public void setId(int id) {
this.main_id = main_id;
}
雖然這個參數(shù)依舊有id這個字符串,但是其get方法是可用的,只需要將其的返回類型設(shè)置成主鍵的類型,也就是int即可。要注意的是,此時set方法是不可用的,因為它是想要設(shè)置主鍵的,所以必然失效。
如果是為了設(shè)置一個具有唯一值的屬性,那就把id從其中去掉就行。