我已經成功地創建表ORMLite,它看起來像它適當補充UUID列作爲主鍵,索引等使用UUID作爲ORMLite(安卓)ID
public class Stat {
@DatabaseField(id = true)
protected UUID uuid = UUID.randomUUID();
...
現在,我希望能夠使用DAO的全功率提供並做(Stat公司是我的同班同學被持久化,getUUID()返回UUID):
Stat statClassInstance = new Stat();
RuntimeExceptionDao<Stat, Integer> statDao = getHelper().getStatDataDao();
statDao.deleteById(statClassInstance.getUUID());
編譯器是給我的錯誤:
The method deleteById(Integer) in the type RuntimeExceptionDao<Stat,Integer> is not applicable for the arguments (UUID)
我缺少的是如何在接受整數的方法中使用UUID ID的方法,如deleteById。 我讀過UUID,因爲ID被合併到ORMLite中,但沒有提及它是否僅僅使它們成爲主鍵,不支持所有這些幫助器方法(queryForId,deleteIds)等。
你爲什麼不刪除記錄的statData。刪除(statClassInstance)。你通常會在模型類(你的statClassInstance)中覆蓋hashCode()equals(),並且應該像例子一樣工作。你建立你的記錄列表來刪除然後迭代和刪除它們。 – 2012-01-16 13:35:15
更多字段使用generatedId --- http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#SEC21 – 2012-01-16 13:40:47
我經常有情況,我只有UUID而不是實例化的對象。創建'虛擬'對象只是爲了從數據庫中刪除它看起來不像是有效/乾淨的方式來做到這一點。 – tmouse 2012-01-16 13:42:26