JPA的注解来定义实体的时候,使用@Id来注解主键属性即可。如果数据库主键是自增长的,需要在增加一个注解@GeneratedValue,即:
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
privateString id;
PS:@GeneratedValue注解的strategy属性提供四种值:
–AUTO: 主键由程序控制,是默认选项,不设置即此项。
–IDENTITY:主键由数据库自动生成,即采用数据库ID自增长的方式,Oracle不支持这种方式。
–SEQUENCE:通过数据库的序列产生主键,通过@SequenceGenerator 注解指定序列名,mysql不支持这种方式。
–TABLE:通过特定的数据库表产生主键,使用该策略可以使应用更易于数据库移植。
针对Oracle指定序列增加主键方式
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="mseq") @SequenceGenerator(name="mseq",sequenceName="seq_newsId",allocationSize=1) @Column(name = "ENTID", unique =true, nullable =false, precision = 22, scale = 0)
网友评论