java - Cómo reemplazar MultipleHiLoPerTableGenerator en desuso con TableGenerator en Hibernate
spring spring-boot (1)
La propiedad que controla este comportamiento en Hibernate es hibernate.id.new_generator_mappings
, que por defecto es verdadero para Hibernate 5 -> lo que significa que se utilizará el nuevo TableGenerator
lugar del obsoleto MultipleHiLoPerTableGenerator
.
Sin embargo, Spring Boot establece de manera predeterminada esta propiedad como falsa, lo que significa que se utilizará el generador anterior, a menos que explícitamente le diga que desea el nuevo. spring.jpa.hibernate.use-new-id-generator-mappings
establecer la propiedad spring.jpa.hibernate.use-new-id-generator-mappings
en true
para obtener TableGenerator.
Ver https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes#generator-mappings
Uso hibernate en una aplicación con spring boot 1.4.0.RELEASE.
La entidad para el índice se ve algo en la línea de:
@Entity(name = "SearchableTariffItem")
@Indexed
public class SearchableTariffItem {
public static final String ZIFFER_ANALYZER_NAME = "ZIFFER_ANALYZER";
@GeneratedValue(strategy = GenerationType.TABLE)
@Id
private Long id;
...
}
Ahora recibo la siguiente advertencia cuando guardo la entidad por primera vez:
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.
Desafortunadamente, no sé dónde puedo configurar mi aplicación (preferiblemente en un application.yml) para usar la clase TableGenerator
.
Yo uso la siguiente dependencia:
- Hibernate núcleo 5.0.9.Final
- Hibernate busca ORM 5.5.1.Final
- Lucene 5.3.1