0 0

详解@GeneratedValue @SequenceGenerator @GenericGenerator10

请高手详解
@GeneratedValue(strategy=TABLE, generator="CUST_GEN")
@SequenceGenerator(name="EMP_SEQ", allocationSize=25)
@GenericGenerator
例子:
@Entity
@Table(name = "`FAVORITES`")
@SequenceGenerator(name = "SEQ_FAVORITE", sequenceName = "SEQ_FAVORITE")
@GenericGenerator(name = "idStrategy", strategy = "native", parameters = { @Parameter(name = "sequence", value = "SEQ_FAVORITE") })
public class Favorite

@Id
@GeneratedValue(generator="idStrategy")
@Column(name="`ID`")
protected int id = 0;
2011年6月07日 16:43

1个答案 按时间排序 按投票排序

0 0

首先这个注解是jpa中的主键生成策略的注解,并且主要用在oracle中,

1.首先需要在实体类前面申明一个Sequence如下:
方法:@SequenceGenerator(name="SEQ_Name",sequenceName="SEQ_DB_Name")
参数注意:SEQ_Name:表示为申明的这个Sequence指定一个名称,以便使用
SEQ_DB_Name:表示为数据库中的Sequence指定一个名称。两个参数的名称可以一样。

@Entity
@SequenceGenerator(name="teacherSEQ",sequenceName="teacherSEQ_DB")
public class Teacher {
……
}



2.然后使用@GeneratedValue注解
方法:@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ_Name")
参数:strategy:固定为GenerationType.SEQUENCE
Generator:在实体类前面申明的sequnce的名称
@Entity
@SequenceGenerator(name="teacherSEQ",sequenceName="teacherSEQ_DB")
public class Teacher {
	private int id;
	
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="teacherSEQ")
	public int getId() {
		return id;
}}


2011年6月07日 17:23

相关推荐

    Hibernate注解大全

    本文档详细介绍了Hibernate中常用的注解及其使用方法,包括@Entity、@Id、@Table、@Column、@GeneratedValue、@SequenceGenerator和@GenericGenerator。通过这些注解,可以更加方便地进行对象关系映射,并有效地管理...

    hibernate注解

    @SequenceGenerator(name = "userSeq", sequenceName = "user_sequence", allocationSize = 1) private Long id; ``` ##### 7. @GenericGenerator 此注解用于定义更复杂的主键生成策略,例如使用自定义算法或特定于...

    hibernate注解说明文档

    @SequenceGenerator(name = "user_seq", sequenceName = "user_sequence", initialValue = 1, allocationSize = 1) public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = ...

    Hibernate全部注解

    @SequenceGenerator(name = "user_seq", sequenceName = "user_sequence", initialValue = 100, allocationSize = 1) public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator ...

    hibernate注解配置详解

    @GeneratedValue(generator = "paymentableGenerator") private Long id; @GenericGenerator(name = "paymentableGenerator", strategy = "native") // 或者 @GenericGenerator(name = "paymentableGenerator...

    hibernate注解说明

    @SequenceGenerator(name = "userSeq", sequenceName = "user_sequence", initialValue = 1, allocationSize = 1) public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = ...

    hibernate注解配置

    6. **@SequenceGenerator**:用于定义序列生成器,通常与`@GeneratedValue(strategy = GenerationType.SEQUENCE)`配合使用。 - `name`:定义序列生成器的名称,必须与`@GeneratedValue`中的`generator`属性匹配。 ...

Global site tag (gtag.js) - Google Analytics