gpt4 book ai didi

java - (ORMLite - android) 直接设置外键字段

转载 作者:行者123 更新时间:2023-11-30 03:21:51 24 4
gpt4 key购买 nike

在我的 android 应用程序中,我从服务器中提取记录并将它们保存到数据库中 - 我希望能够保存“消息”记录,而不必先保存它们所附加的“线程”记录.

一条消息由以下部分组成:

  • 字符串编号
  • 字符串主体
  • 长sent_ts
  • 字符串 sender_id
  • 字符串topic_id

是否可以直接在 Message 对象上设置 topic_id 和 sender_id 记录,而不是创建虚拟的 Topic 实例和 User 实例?我知道我可以不将字段标记为外部字段并放弃对相关对象进行一些更简单的查找,或者先保存所有嵌套对象,但是在外部提供键的情况下是否可以直接设置外键引用?

这是在 Android 上使用标准 Android SQLite 设置完成的。

编辑

我最终决定在同一个数据库表上编写多个模型。这不是最优雅的解决方案,但它似乎是能够直接填充外部 ID 字段或连接其他表的唯一方法,具体取决于上下文。

最佳答案

I'd like to be able to save "Message" records without having to first save the "Thread" records that they are attached to.

所以每个 Message 都有一个外部的 TopicUser 字段,你想持久化 Message 在您将它们分配给那些外来对象之前实例?

是的,您当然可以将topicuser 字段保留为null。当然,您需要将它们标记为 canBeNull=true。稍后您应该能够在有问题的 Message 上设置 topicuser 字段,然后调用 messageDao.update(message ) 更新数据库。

编辑:

看了你的评论,我明白了。有没有一种方法可以将 id 字段保存到一个类中,而不是创建只设置了 id 字段的虚拟对象?除非您自己执行原始 SQL create 语句,否则答案是否定的。 ORMLite 需要有一个 Topic 字段,因为这是它所期望的。如果你只想要 id 那么你可以有一个 int topic_id 字段而不是 Topic topic 并自己进行主题关联。

关于java - (ORMLite - android) 直接设置外键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988750/

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