我已经成功地创建表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