我有一種情況,我需要保存一個hibernate對象,但我不知道是否將通過調用應用程序分配一個ID(使用範圍內的特殊邏輯 - 唯一) 或不。休眠 - 自動或手動ID - 在集羣環境
如果ID未分配,我需要休眠來生成一個高於應用程序可能輸入的ID範圍(我知道範圍)的ID。否則應該使用應用程序輸入。
我對MySQL的工作 - 檢查,看看,如果我能像下面
public class MyDOIdGenerator extends IdentityGenerator{
@Override
public Serializable generate(SessionImplementor session, Object obj) throws HibernateException {
if ((((MyDO) obj).getId()) == null) {
Serializable id = super.generate(session, obj) ;
return id;
} else {
return ((MyDO) obj).getId();
}
}
}
但我的問題是,我不知道super.generate將如何表現在集羣環境中自定義的生成。它會保持跨服務器的ID同步嗎?我如何指定從開始的號碼? (因爲我需要有在使用ID範圍排除應用Hibernate來生成它)
請幫
感謝
謝謝,我的問題是兩個這裏1- MySQL的犯規支撐squences 2.我的DO對象既可以填充有預先定義的ID(續數據遷移&SYC通過來自不同系統的API調用大約一個月 - 這些調用帶有源系統中的id)。正常的API調用不帶有ID,系統應該識別並正確分配一個ID – user3233126