调查:大家用 hibernate 对于数据库主键用什么?

jacklondon 2005-03-17 01:20:24
调查:大家用 hibernate 对于数据库主键用什么?
native? assigned?
考不考虑数据库的通用性(跨数据库)?
...全文
299 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacklondon 2005-03-31
  • 打赏
  • 举报
回复
在 hibernate 源代码中找到 uuid 的生成方法。
import org.hibernate.id.UUIDHexGenerator;

String sid = (String)(new UUIDHexGenerator().generate(null,null));

guid 只支持 sql server 和 sybase.
jacklondon 2005-03-19
  • 打赏
  • 举报
回复
哪个 class ? 我怎么没有找到?
pigo 2005-03-19
  • 打赏
  • 举报
回复


guid

jdk1.5自带。

dlxu 2005-03-19
  • 打赏
  • 举报
回复
uuid.hex我自己最喜欢,或者hilo也可以,当然,native的兼容性比较好
ynnwq 2005-03-18
  • 打赏
  • 举报
回复
native
jacklondon 2005-03-18
  • 打赏
  • 举报
回复
用 sequence 的话,以后换成别的数据库怎么做改动最少?
star6 2005-03-18
  • 打赏
  • 举报
回复
用uuid.hex应该挺不错的,不过有个限制就是数据库表的主键必须是32位长的字符串才行,如果开发时是用的已有的数据库,而主键是其他类型的那就只能考虑其他的了
Saro 2005-03-17
  • 打赏
  • 举报
回复
uuid.hex
waterye 2005-03-17
  • 打赏
  • 举报
回复
用数据库自已的主键,如oracle用序列
shan1119 2005-03-17
  • 打赏
  • 举报
回复
me 2
syliang2003 2005-03-17
  • 打赏
  • 举报
回复
assigned!!

我们也是用这个!
AbeiXu 2005-03-17
  • 打赏
  • 举报
回复
我们可以用下面三个值:
//JVMHASH
JVMHASH = Math.abs((new Object()).hashCode());

//Random
Random m_random = new Random(System.currentTimeMillis());

//...MACHINEID
InetAddress inetaddress = InetAddress.getLocalHost();
byte[] b = inetaddress.getAddress();
//然后转换为long

然后将这个三个组合计算得到,不会产生相同的key的。
jacklondon 2005-03-17
  • 打赏
  • 举报
回复
有没有考虑用某种 uuid 算法?如果多用户同时操作,会不会 insert 同样的 primary key?
请教!!
AbeiXu 2005-03-17
  • 打赏
  • 举报
回复
Assigned
呵呵,我们项目开发得早,那时候还是1.0的:)自己的

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧