在Spring Boot中使用EmbeddedId中的序列,可以通过以下步骤实现:
@Embeddable
注解进行标记。例如:@Embeddable
public class MyEmbeddedId implements Serializable {
private Long id;
private String name;
// 构造函数、getter和setter方法
}
@EmbeddedId
注解将嵌入式主键类应用于实体的主键字段。同时,使用@GeneratedValue
注解指定主键的生成策略为序列(Sequence)。例如:@Entity
public class MyEntity {
@EmbeddedId
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_sequence_generator")
@SequenceGenerator(name = "my_sequence_generator", sequenceName = "my_sequence")
private MyEmbeddedId id;
// 其他属性和方法
}
spring.jpa.properties.hibernate.id.new_generator_mappings = false
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false
spring.jpa.properties.hibernate.hbm2ddl.auto = update
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation = true
spring.jpa.properties.hibernate.format_sql = true
spring.jpa.properties.hibernate.show_sql = true
spring.jpa.properties.hibernate.use_sql_comments = true
spring.jpa.properties.hibernate.type = trace
spring.jpa.properties.hibernate.id.optimizer.pooled.prefer_lo = true
spring.jpa.properties.hibernate.id.optimizer.pooled.prefer_sequence_per_entity = true
spring.jpa.properties.hibernate.id.optimizer.pooled.initial_value = 1
spring.jpa.properties.hibernate.id.optimizer.pooled.increment_size = 100
spring.jpa.properties.hibernate.id.optimizer.pooled.optimizers = pooled-lo, pooled
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.min_lo = 1
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.max_lo = 100
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.table = hibernate_sequences
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.column = next_val
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.primary_key = sequence_name
spring.jpa.properties.hibernate.id.optimizer.pooled.hi_lo.primary_key_value = my_sequence
@Autowired
private MyEntityRepository myEntityRepository;
public void saveEntity() {
MyEmbeddedId id = new MyEmbeddedId();
id.setId(1L);
id.setName("example");
MyEntity entity = new MyEntity();
entity.setId(id);
// 设置其他属性
myEntityRepository.save(entity);
}
以上就是在Spring Boot中使用EmbeddedId中的序列的步骤。在这个过程中,我们使用了嵌入式主键类来表示复合主键,并配置了序列生成器来生成主键值。这样,我们就可以在业务逻辑中使用嵌入式主键来操作实体对象。
算法大赛
云+社区沙龙online第5期[架构演进]
微服务平台TSF系列直播
云+社区沙龙online [技术应变力]
高校公开课
腾讯云存储专题直播
领取专属 10元无门槛券
手把手带您无忧上云