我有一种情况,我需要保存一个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