Hibernate Sequence Id Specification
我有这个注释来指定序列ID:
@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "parametro_seq_gen") @SequenceGenerator(name = "parametro_seq_gen", sequenceName = "PARAMETROS_SQ", allocationSize = 1, initialValue = 1)
我发现在我的所有实体上重复都非常冗长。
有没有办法创建自定义注释或什么? 我只想指定序列名称 。
这很简单!
只需创建一个存储实体的package-info.java
,并在那里提供全局@GenericGenerator
:
@GenericGenerator( name = "pooled", strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator", parameters = { @Parameter(name = "sequence_name", value = "sequence"), @Parameter(name = "initial_value", value = "1"), @Parameter(name = "increment_size", value = "5"), } ) package com.vladmihalcea.book.hpjp.hibernate.identifier.globalsequence;
然后您的实体可以共享pooled
通用生成器,如下所示:
@Entity(name = "Post") public class Post { @Id @GeneratedValue(generator = "pooled") private Long id; } @Entity(name = "Announcement") public class Announcement { @Id @GeneratedValue(generator = "pooled") private Long id; }
您需要使用@GenericGenerator
因为@SequenceGenerator
不适用于包。
而已!
是的,您可以使用自定义注释或黑客方式中的其他内容,但我建议使用实时模板(我正在使用IDEA)
- 如何构建一个动态查询,该查询添加了迄今为止的天数,并使用条件API将该日期与另一个日期进行比较?
- 有人有Hibernate使用Elasticache作为其二级缓存吗?
- 使用Transformer时HibernateexceptionPropertyNotFoundException
- 应用程序缓存vs hibernate二级缓存,使用哪个?
- 找不到Hibernateexceptionhibernate.cfg.xml
- Hibernate删除级联
- 将@ManyToMany关联表与额外列映射
- org.hibernate.MappingException:没有JDBC类型的Dialect映射:1111
- 密钥’PRIMARY’的重复条目’string1-string2′