【发布时间】:2014-02-15 20:46:19
【问题描述】:
我遇到需要保存休眠对象的情况,但我不确定是否会通过调用应用程序(使用范围内的特殊逻辑 - 唯一)来分配 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 同步吗?如何指定开始的号码? (因为我需要在hibernate生成它时使用id范围排除应用程序)
请帮忙
谢谢
【问题讨论】:
标签: java mysql hibernate identity