相关疑难解决方法(0)

如何在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;
    ...
}
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.0.9.Final
  • Hibernate搜索ORM 5.5.1.Final
  • Lucene 5.3.1

java spring hibernate hibernate-search spring-boot

17
推荐指数
1
解决办法
6432
查看次数

在jpa.properties.hibernate.id.new_generator_mappings:true时使用不推荐的[org.hibernate.id.SequenceGenerator]和唯一的constratint违规

升级到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我得到唯一约束违规错误

hibernate jpa

2
推荐指数
1
解决办法
3015
查看次数

标签 统计

hibernate ×2

hibernate-search ×1

java ×1

jpa ×1

spring ×1

spring-boot ×1