首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql的Oracle序列模拟

问Mysql的Oracle序列模拟
EN

Stack Overflow用户
提问于 2017-03-28 08:03:33
回答 1查看 108关注 0票数 0

我使用Hibernate 4和Oracle 11g。在这个二重唱中有一个很方便的特点。我可以清楚地指出以下几点:

代码语言:javascript
复制
@Entity
@Table(name = "APPLICATION", schema = "PRODUCTION")
public class ApplicationVersionModel {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PRODUCTION.SEQUENCE_NEW")
    @SequenceGenerator(name = "PRODUCTION.SEQUENCE_NEW", schema = "PRODUCTION", sequenceName = "PRODUCTION.SEQUENCE_NEW", allocationSize = 1)
    @Column(name = "ID")
    @XmlTransient
    @Getter @Setter private Long id;

并描述DB中的顺序:

代码语言:javascript
复制
CREATED         27.02.17
LAST_DDL_TIME   27.02.17
SEQUENCE_OWNER  PRODUCTION
SEQUENCE_NAME   SEQUENCE_NEW
MIN_VALUE       1
MAX_VALUE       9999999999999999999999999999
INCREMENT_BY    1
CYCLE_FLAG      N
ORDER_FLAG      N
CACHE_SIZE      20
LAST_NUMBER     957101
PARTITION_COUNT 
SESSION_FLAG    N
KEEP_VALUE      N

这样,这个组合将允许我在多线程环境中使用该应用程序。同时访问用户将得到一个唯一的id,不会对冲突造成威胁。文献资料显式声明了这个特性。

在这种情况下,Hibernate和Mysql对中是否有类似的功能?任何建议都是非常感谢的。在此之前,非常感谢您。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-28 08:54:28

如果使用序列为单个表生成唯一ids,则MySQL的增量将提供相同的功能。

本文对如何用JPA注释注释MYSQL自动增量字段问题的公认答案描述了如何在hybernate中使用MySQL的auto_increment:

要使用MySQL AUTO_INCREMENT列,应该使用IDENTITY策略: @Id @GeneratedValue(strategy=GenerationType.IDENTITY)私有长id; 当您将AUTO与MySQL一起使用时,您会得到这样的结果: @Id @GeneratedValue(strategy=GenerationType.AUTO)私有长id; 实际上相当于 @Id @GeneratedValue私有长id;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43063920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档