我已经使用ORMLite成功创建了表,看起来它正确地将uuid列添加为主键,索引等.
public class Stat {
@DatabaseField(id = true)
protected UUID uuid = UUID.randomUUID();
...
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够使用提供的DAO的全部功能并执行(Stat是我的类要保持,getUUID()返回UUID):
Stat statClassInstance = new Stat();
RuntimeExceptionDao<Stat, Integer> statDao = getHelper().getStatDataDao();
statDao.deleteById(statClassInstance.getUUID());
Run Code Online (Sandbox Code Playgroud)
编译器给我一个错误:
The method deleteById(Integer) in the type RuntimeExceptionDao<Stat,Integer> is not applicable for the arguments (UUID)
Run Code Online (Sandbox Code Playgroud)
我缺少的是如何在接受整数的deleteById等方法中使用UUID ID.我已经读过UUID作为ID被合并到ORMLite中,但没有提到它是否只是使它们成为主键,而不支持所有这些辅助方法(queryForId,deleteIds)等.
为了使用deleteById(ID)方法,Dao<T,ID>应该使用在T类中识别的相应参数进行相应的创建.ID将被解释为您在T类中定义的任何类型作为主键.在这种特殊情况下,它是UUID类型,并查看DAO已使用创建的异常Dao<Stat, Integer>,应该按如下方式创建:
Dao<Stat, UUID> statDao = DaoManager.createDao(connSource, Stat.class);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
2788 次 |
| 最近记录: |