2012-12-11 215 views
1

我有一個跨2個實例部署的應用程序。主鍵生成MySQL休眠

數據庫:MySQL的
ORM:Hibernate的

不過,我需要實現類似行爲Oracle序列。由於MySQL沒有,我簡單地創建了一個AUTO_INCREMENT表和一個方法來從它返回值。它是線程安全的,所以當我在1臺服務器上部署這個應用程序時它不是問題。但是,我不認爲這個線程安全的行爲將在多個JVM中保持真實。 在這種情況下該怎麼辦?

+0

每次插入記錄時,MySQL都會生成一個新的數字,您的例程將返回該數字的值。如果你只有一個MySQL實例,我看不到你會遇到問題的地方。 – Jaydee

回答

1

跨多個JVM使用是安全的。 MySQL每發出一次ID。在ResultSet上使用getGeneratedKeys()來檢索生成的ID。