+ -
当前位置:首页 → 问答吧 → hibernate设置generatorValue问题

hibernate设置generatorValue问题

时间:2011-08-11

来源:互联网

用的是annotation
  然后到oracle数据库创建了一个create sequence seq_user;
  到entity设置主键generatorValue时候怎么配置才能用seq_user这个序列?

作者: chenzhiming88   发布时间: 2011-08-11

使用sequence生成id
使用sequence生成id时,id属性的Annotation应该是:
  @Id
  @GeneratedValue (strategy=GenerationType.SEQUENCE, generator="SEQ_BOOK_ID")
需要注意的是,GeneratedValue中的generator不是sequence的名字,而是一个另外定义的SequenceGenerator的名字。这个SequenceGenerator应该定义在类的级别,因此比较完整的代码是想这个样子的:

@Entity
@AccessType("property")
@Table(name="BOOK")
@SequenceGenerator (name="SEQ_BOOK_ID", sequenceName="SEQ_BOOK_ID")
public class Book {

  private Long id;
   
  @Id
  @GeneratedValue (strategy=GenerationType.SEQUENCE, generator="SEQ_BOOK_ID")
  public Long getId() {
  return id;
  }

  ......
}  

成功配置:

@SequenceGenerator(name="generator",sequenceName = "SEQ_SYSMGR_LOGIN_LOG")@Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="generator")

作者: ajun_studio   发布时间: 2011-08-11

热门下载

更多