解释Java类中@GeneratedValue注解

@Idannotation继承自javax.persistence.Id,表示下面的成员字段是当前实体的主键。所以,你的Hibernate和spring框架以及你能够作一些反射基于这个注释的做品。java

@GeneratedValue注释是配置指定列(字段)增量的方式。例如,当使用Mysql时,您能够在表的定义中指定auto_increment以使其自增量,而后使用spring

1.在数据库中定义序列sql

例如,Oracle必须使用序列做为增量方法,假设咱们在Oracle中建立一个序列:数据库

create sequence oracle_seq;oracle

2.参考数据库序列框架

如今咱们在数据库中有序列,可是咱们须要创建Java和DB之间的关系,经过使用@SequenceGenerator:继承

@SequenceGenerator(name="seq",sequenceName="oracle_seq")rem

sequenceName是Oracle中序列的真实名称,name是您要在Java中调用它的名称。若是它不一样于name,你须要指定sequenceName,不然只需使用name。我一般忽略sequenceName来节省个人时间。generator

3.在Java中使用序列io

最后,是时候在Java中使用这个序列。只需添加@GeneratedValue:

@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")

生成器字段指的是要使用的序列生成器。请注意,它不是DB中的实际序列名称,而是您在SequenceGenerator的name字段中指定的名称。

4.完成 因此完整的版本应该是这样的: public class MyTable{ ​ @Id ​ @SequenceGenerator(name="seq",sequenceName="oracle_seq") ​ @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq") ​ private Integer pid;

}

相关文章
相关标签/搜索