Spring Data JPA在测试中遇到了save方法

时间:2016-04-13 14:27:43

标签: java spring hibernate jpa spring-data-jpa

我无法让我的单元测试使用CrudRepository.save方法。 当我运行我的单元测试时,它会一直运行,而不是通过save()方法。

我的控制台中显示的最后一个DEBUG消息是:

16:20:35.293 [main] DEBUG org.hibernate.loader.Loader - Done entity load

现在奇怪的是,如果我使用旧的JdbcTemplate执行一个insert语句,它是有效的,只有在主键为1时才会执行。 所以例如;
INSERT INTO my_table (id, value) VALUES (1, 'Hello World')
会工作,测试会成功 但这不会:
INSERT INTO my_table (id, value) VALUES (2, 'Hello World')
测试一直在持续运行

已经在寻找像auto_increment这样的东西,但是我找不到任何东西。

1 个答案:

答案 0 :(得分:0)

好的,所以我发现我需要为自动递增变量的@GeneratedValue注释使用不同的值。

我使用了这个答案中的第一个值:https://stackoverflow.com/a/4103347/5976604,然后它就可以了。

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;

我确实认为Hibernate在发生这种情况时不会抛出异常或其他东西感到烦恼,但它会被卡住。