java spring hibernate spring-boot hibernate-search

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