2012-06-26 35 views
4

我想对我的JPA 2实体本地和便携式ID生成,目前正在运行的Hibernate和MySQL如何在JPA 2/Hibernate中生成可移植和本地ID生成?

当使用@GeneratedValue(策略= AUTO),休眠关于MySQL默认为“hibernate_sequence”表,我会比如身份

如果我解决它使用@GeneratedValue(策略= IDENTITY),我失去甲骨文/ Postgres的便携

我怎么可以设置休眠使用Identity为默认MySQL时@GeneratedValue策略= AUTO?

+0

也试过hibernate论坛... https://forum.hibernate.org/viewtopic.php?f=1&t=1016503 –

+0

到目前为止没有好的答案..这是Hibernate 3.x的默认行为。 – BrunoJCM

回答

0

您可以编写自己的自定义生成器,也可以调用您的 数据库上的函数/存储过程来创建所需的标识。
看看here,这是一个关于如何做我刚刚写的东西的好例子的博客。

0

没有代码在Hibernate中的变化,你不能影响。一种解决方法是使用不同的映射集(xml代替注释)为每个具有不同id要求的数据库使用。这当然有很多事情要做。

只有真正可移植的独立于数据库供应商的方式是使用TABLE策略生成id。