2012-06-21 81 views
0

我有一個實體類型say URLInfo,它保存有關URL的信息。該實體的主鍵是URL本身(這確保了我在數據存儲中始終具有唯一的URL)。我也想爲每個網址使用唯一的整數ID,以便共享ID變得更容易。雖然,我可以使用GUID,但這對我來說不是首選。我怎樣才能達到這個要求?整數Ids不需要是順序的(首選,如果是的話)。實體可以以更快的速度生成(這意味着我無法在每次生成新的URL記錄時更新公用計數器)。這是我迄今爲止所嘗試的 - 在URLInfo類中,我定義了一個字段 - Long Id,並使用@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)對其進行了註釋,希望能夠自動生成唯一值。但是,當我保存新實體(id設置爲空)時,它將實體保存在數據存儲中,但不會爲此字段分配任何值。Google App Engine中實體的非主鍵字段的唯一整數ID

我正在嘗試所有這些在本地機器上。

感謝

回答

0

試試這個

@GeneratedValue(strategy=GenerationType.IDENTITY) 
+0

也許我忘了提,我使用JDO。您建議的註釋不可用(GeneratedValue無法解析爲某種類型)。 –

+0

好的。我假設你使用JPA。 只有你提到使用註釋'@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)'時,一定要同時使用'@ PrimaryKey'註釋。 你還必須小心鍵的類型。查看鏈接: https://developers.google.com/appengine/docs/java/datastore/jdo/creatinggettinganddeletingdata#Keys – Angel

+0

嗨天使。我希望它沒有@PrimaryKey註釋。我的主鍵是URL。如果我將整數ID作爲主鍵,我會冒着在數據存儲中重複我的URL的風險(如果您知道使用哪種策略可以避免此風險,那麼我將非常高興並採用該策略)。簡而言之,我需要存儲唯一的URL以及其唯一的整數ID。 –

相關問題