gpt4 book ai didi

android - 在 ORMLite (Android) 中使用 UUID 作为 id

转载 作者:行者123 更新时间:2023-11-29 14:54:48 25 4
gpt4 key购买 nike

我已经使用 ORMLite 成功创建了表,看起来它正确地添加了 uuid 列作为主键、索引等。

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)

我缺少的是如何在 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);

希望对你有帮助

关于android - 在 ORMLite (Android) 中使用 UUID 作为 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com