我无法让我的单元测试使用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这样的东西,但是我找不到任何东西。
答案 0 :(得分:0)
好的,所以我发现我需要为自动递增变量的@GeneratedValue注释使用不同的值。
我使用了这个答案中的第一个值:https://stackoverflow.com/a/4103347/5976604,然后它就可以了。
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
我确实认为Hibernate在发生这种情况时不会抛出异常或其他东西感到烦恼,但它会被卡住。