1

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

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

  • 字符串编号
  • 弦体
  • 长发送_ts
  • 字符串 sender_id
  • 字符串 topic_id

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

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

编辑

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

4

1 回答 1

1

我希望能够保存“消息”记录,而不必先保存它们所附加的“线程”记录。

所以每个Message都有一个外部TopicUser字段,您想在将Message实例分配给这些外部对象之前保留它们吗?

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

编辑:

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

于 2013-09-24T18:03:45.760 回答