【问题标题】:Override Strategy for Hibernate For Unit Tests单元测试的 Hibernate 覆盖策略
【发布时间】:2018-05-08 18:40:53
【问题描述】:

我们有一个父实体类,它定义了使用类生成 id 的策略。

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class ParentEntity {
    @Id
    @GenericGenerator(name = "oid", strategy = "com.ourcompany.ourproject.jpa.util.OurIDGenerator")
    @GeneratedValue(generator = "oid")
    protected BigInteger id;

我正在尝试将 H2 用于我的 JUnit 测试,它部分支持 BitInteger(它实际上支持 long)

我想要做的是仅在我的单元测试中更改策略以生成适合多头的值。我尝试过模拟 OurIDGenerator 以及返回 OurIDGenerator 类的休眠方法,但没有成功。有没有人有其他想法?

【问题讨论】:

    标签: java spring hibernate jpa junit


    【解决方案1】:

    我认为您应该选择 Long 而不是 BigInteger,因为它是 @Id 表示的更好候选者。更重要的是,使用 Long 类型进行测试并使用 BigInteger 运行应用程序会产生不同的结果。除了用于测试和应用程序的数据库也应该相同。

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多