mysql sequencegenerator_java – 什么是注释@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)的使用?为什么ge...

让我回答这个问题:首先,使用注释作为我们的配置方法只是一个方便的方法,而不是应对无尽的XML配置文件。Idannotation继承自javax.persistence.Id&

让我回答这个问题:

首先,使用注释作为我们的配置方法只是一个方便的方法,而不是应对无尽的XML配置文件。

@Idannotation继承自javax.persistence.Id,表示下面的成员字段是当前实体的主键。因此,你的Hibernate和spring框架以及你可以做一些反射基于这个注释的作品。详情请查询javadoc for Id

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

@GeneratedValue(strategy = GenerationType.IDENTITY)

在Java代码中表示您也承认使用此数据库服务器端策略。此外,您可以更改此注释中的值以适应不同的要求。

1.在数据库中定义序列

例如,Oracle必须使用序列作为增量方法,假设我们在Oracle中创建一个序列:

create sequence oracle_seq;

2.参考数据库序列

现在我们在数据库中有序列,但是我们需要建立Java和DB之间的关系,通过使用@SequenceGenerator:

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

sequenceName是Oracle中序列的真实名称,name是您要在Java中调用它的名称。如果它不同于name,你需要指定sequenceName,否则只需使用name。我通常忽略sequenceName来节省我的时间。

3.在Java中使用序列

最后,是时候在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;

}

现在开始使用这些注释,使您的JavaWeb开发更容易。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754915689a5214951.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信