2011-07-27 46 views
0

我想知道如何爲JPA創建我自己的自定義ID生成器。我不想創建一個數字增量生成器,而是創建一個字母數字,區分大小寫的生成器,類似於URL縮寫器如何跟蹤網站。如何創建一個用於生成唯一值的新SequenceGenerator?

例如,URL縮寫器不使用數字鍵,因爲與區分大小寫的字母數字生成器相比,它們效率低下。本質上,像urlshortener.com/20這樣的東西可以縮寫爲urlshortener.com/t。隨着數字的增加,這種差異成指數地變好,因爲它是10^n比62^n,其中n是可用數字的數量。

如何在JPA中將其作爲SequenceGenerator實現?

+0

如果您有要求您沒有數字ID的要求,那麼這是一個有缺陷的要求。恕我直言。 – Shahzeb

回答

2

對於存儲在數據庫中,這不是更高效。爲了顯示,您可以使用Base64或Base32編碼。

+0

+1爲聰明idea.But爲什麼會顯示一個不同的價值在數據庫中。 – Shahzeb

+0

URL縮短者如何做到這一點?他們顯然不使用Base64或Base32,因爲它們具有不規則的字符,例如等號。 –

+1

「爲什麼會顯示與數據庫中的內容不同的值」 - 要解答該問題,請閱讀MVC(模型視圖控制器)模式。如何呈現數據視圖取決於VIEW,而不是數據模型。所以我同意。如果可能,最好將主鍵保持爲整數。 – Marvo

相關問題