2013-09-24 53 views
1
設置外鍵的字段

在我的Android應用程序,我拉下從服務器記錄,並將它們保存到數據庫 - 我希望能夠保存「消息」的記錄,而無需先救它們附帶的「線程」記錄。(ORMLite - 機器人)直接

的消息是由:

  • 字符型
  • 繩體
  • 龍sent_ts
  • 字符串SENDER_ID
  • 字符串topic_id

是否有可能設置topic_id和sender_id直接記錄在消息對象r上而不是創建一個虛擬的Topic實例和用戶實例?我知道我不能將這些字段標記爲外來的,並放棄對相關對象的一些更簡單的查找,或者先保存所有嵌套的對象,但是可以直接設置外鍵引用,以防外鍵提供?

這是正在Android上做了與標準Android SQLite的設置。

編輯

我終於塵埃落定上的同一個數據庫表寫多個模型。這不是最優雅的解決方案,但它似乎是唯一能夠直接填充外部ID字段或加入其他表的方法,具體取決於上下文。

回答

1

我希望能夠保存「消息」記錄,而不必先保存它們所附的「線索」記錄。

所以每個Message有外國TopicUser領域,並且希望您將他們分配給這些異物之前堅持的Message實例

是的,你肯定可以讓你的topicuser字段爲null。當然,您需要將它們標記爲canBeNull=true。再後來,你應該能夠設置問題上Messagetopicuser字段,然後調用messageDao.update(message)更新數據庫。

編輯:

閱讀您的意見,我現在明白了。有沒有辦法將id字段保存到類中,而不是創建只包含id字段的虛擬對象?答案是否定的,除非你自己做原始的SQL創建語句。 ORMLite需要有一個Topic字段,因爲這就是它所期望的。如果你只是想要的ID,那麼你可以有一個int topic_id字段而不是Topic topic,並自己做主題關聯。

+0

我想要做的就是節省消息的thread_id記錄之前,我確實有數據實例對應於我想涉及到,我已經獲取的所有消息實體的情況下,線程的線程對象線程實體之前。 –

+0

正在使用的鍵對於Android應用程序來說是外生的。 –

+0

我編輯了我的答案@Alan。 – Gray