我在一个带有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;
...
}
Run Code Online (Sandbox Code Playgroud)
我第一次保存实体时现在收到以下警告:
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.
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道在哪里可以配置我的应用程序(最好是在application.yml中)来使用TableGenerator该类.
我使用以下依赖项:
升级到Hibernate 5后,我收到了错误消息Found use of deprecated [org.hibernate.id.SequenceGenerator].我发现这个答案有一个代码片段,提到如何解决问题.
我想知道该解决方案的工作原理.该代码片段是否与@SequenceGenerator注释做同样的事情?如果是这样,为什么被SequenceGenerator弃用?
我的注释来自javax.persistence包装.我宁愿不在我的代码中添加特定于hibernate的东西.在我已经链接的答案中strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",,依赖于hibernate(至少在运行时).有没有办法实现这个目标?
当我设置时,hibernate.id.new_generator_mappings:true我得到唯一约束违规错误