Android ORMLite 和如果不存在则创建逻辑
Android ORMLite and create if not exists logic
如果不存在则创建 恕我直言,ORM
仅当记录不存在时才会在 table 中创建记录。
我认为 ORMLite 默认使用这样的逻辑。但是 DAO
的 create
方法只会复制记录。我已经尝试了 createOrUpdate
和 createIfNotExist
方法,但其中 none 方法如我所愿。
我找到了另一个 SO question,它解释了 createOrUpdate
对 ID 执行检查,这些 ID 在我的 DTO
中具有默认值(空或 0)。
那么我是否需要创建自己的 DAO
,从 ORMLite 的 BaseDaoImpl
class 继承它们并覆盖 createIfNotExist
方法?这是迄今为止我想到的唯一想法。有没有更好的方法来实现理想的逻辑?
编辑
我试图覆盖自定义 DAO
的 createIfNotExist
方法,但似乎只能直接调用它,即顶级 table 不会执行外键 createIfNotExist
的调用。
看来我需要用我自己的方法定义 CRUD
接口并在 BaseDaoImpl
方法上实现它们。
你可能想使用我的小库,它添加了这样的功能
如果不存在则创建 恕我直言,ORM
仅当记录不存在时才会在 table 中创建记录。
我认为 ORMLite 默认使用这样的逻辑。但是 DAO
的 create
方法只会复制记录。我已经尝试了 createOrUpdate
和 createIfNotExist
方法,但其中 none 方法如我所愿。
我找到了另一个 SO question,它解释了 createOrUpdate
对 ID 执行检查,这些 ID 在我的 DTO
中具有默认值(空或 0)。
那么我是否需要创建自己的 DAO
,从 ORMLite 的 BaseDaoImpl
class 继承它们并覆盖 createIfNotExist
方法?这是迄今为止我想到的唯一想法。有没有更好的方法来实现理想的逻辑?
编辑
我试图覆盖自定义 DAO
的 createIfNotExist
方法,但似乎只能直接调用它,即顶级 table 不会执行外键 createIfNotExist
的调用。
看来我需要用我自己的方法定义 CRUD
接口并在 BaseDaoImpl
方法上实现它们。
你可能想使用我的小库,它添加了这样的功能