当前位置: 代码迷 >> J2EE >> hibernate uuid id生成策略有关问题
  详细解决方案

hibernate uuid id生成策略有关问题

热度:451   发布时间:2016-04-22 01:12:41.0
hibernate uuid id生成策略问题
大家有没遇到这样的问题啊,我用uuid的主键生成策略,修改数据的时候变成了新增,不知道怎么解决,哪位大神帮解决下。代码如下:
Java code
//JPA 基类的标识@MappedSuperclasspublic abstract class PkidEntity {    /**     * 主键及主键生成方式     */    @Id    @GenericGenerator(name="hibernate-uuid",strategy="uuid")    @GeneratedValue(generator="hibernate-uuid")    @Column(name="pkid", nullable=false)    protected String pkid;        public String getPkid() {        return pkid;    }    public void setPkid(String pkid) {        this.pkid = pkid;    }    }


但是我用序列的生成方式则没有这样的问题
Java code
@MappedSuperclasspublic abstract class IdEntity {    protected Long id;    @Id    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PKGen")      @SequenceGenerator(name = "PKGen", sequenceName = "HIBERNATE_SEQUENCE", allocationSize = 1)      public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }}


------解决方案--------------------
我一般是这样写
Java code
    @Id       @GeneratedValue(generator = "system-uuid")       @GenericGenerator(name = "system-uuid", strategy = "uuid")     public String getId() {    return this.id;    }    public void setId(String id) {    this.id = id;    }
------解决方案--------------------
看了下,原来你是用ORACLE数据库的序列自增的,你就用@SequenceGenerator
------解决方案--------------------
探讨

引用:

看了下,原来你是用ORACLE数据库的序列自增的,你就用@SequenceGenerator

我不想用序列啊,我想用自动生成的id
新增和修改的方法都是save
  相关解决方案