如何在Hibernate中用TableGenerator替换已弃用的MultipleHiLoPerTableGenerator
我在一个带有spring boot 1.4.0.RELEASE的应用程序中使用hibernate。
索引的实体看起来像是:
@Entity(name = "SearchableTariffItem") @Indexed public class SearchableTariffItem { public static final String ZIFFER_ANALYZER_NAME = "ZIFFER_ANALYZER"; @GeneratedValue(strategy = GenerationType.TABLE) @Id private Long id; ... }
我第一次保存实体时现在收到以下警告:
2016-08-26 15:08:32.501 WARN 8476 — [apr-8080-exec-6] org.hibernate.orm.deprecation : HHH90000015: Found use of deprecated [org.hibernate.id.MultipleHiLoPerTableGenerator] table-based id generator; use org.hibernate.id.enhanced.TableGenerator instead. See Hibernate Domain Model Mapping Guide for details.
不幸的是,我不知道在哪里可以配置我的应用程序(最好是在application.yml中)来使用TableGenerator
类。
我使用以下依赖项:
- Hibernate核心5.0.9.Final
- Hibernate搜索ORM 5.5.1.Final
- Lucene 5.3.1
在Hibernate中控制此行为的属性是hibernate.id.new_generator_mappings
,对于Hibernate 5默认为true – >这意味着将使用新的TableGenerator
而不是弃用的MultipleHiLoPerTableGenerator
。
但Spring Boot默认将此属性设置为false,这意味着将使用旧的生成器,除非您明确告诉它您想要新的生成器。 您需要将属性spring.jpa.hibernate.use-new-id-generator-mappings
为true
以获取TableGenerator。
请参阅https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes#generator-mappings
- Java Date Hibernate切断时间
- Lombok @builder在一个扩展另一个类的类上
- 忽略In-Criterion
- Hibernate对Web应用程序更安全吗?
- IllegalArgumentException:为TypedQuery 指定的类型与查询返回类型不兼容
- Hibernate ManyToMany是否可以为非键列自连接? 获取mappingException
- java.lang.NoSuchMethodException:org.hibernate.validator.ClassValidator Seam weblogic 10.3
- 使用hibernate Criteria更新多行
- 来自连接表的Hibernate 键