用于单元测试的Hibernate覆盖策略

时间:2018-05-08 18:40:54

标签: java spring hibernate jpa junit

我们有一个父实体类,它定义了使用类生成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以及hibernate方法返回OurIDGenerator类而没有运气。有没有人有其他想法?

1 个答案:

答案 0 :(得分:0)

我认为你应该选择Long over BigInteger,因为它更适合成为@Id代表。使用BigInteger测试Long类型和运行应用程序会产生不同的结果。除了测试和应用程序的数据库也应该是相同的。