Java Spring数据JPA在测试中被困在save方法中

Java Spring数据JPA在测试中被困在save方法中,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,我无法使用crudepository.save方法进行单元测试。 当我运行单元测试时,它会一直运行,不会超过save()方法 “我的控制台”中显示的最后一条调试消息是: 16:20:35.293 [main] DEBUG org.hibernate.loader.Loader - Done entity load 现在奇怪的是,如果我使用旧的JdbcTemplate执行一条insert语句,它就可以工作了,前提是主键是1。 比如说,; 将值(1,'Hello World')插入my_表(id

我无法使用crudepository.save方法进行单元测试。 当我运行单元测试时,它会一直运行,不会超过save()方法

“我的控制台”中显示的最后一条调试消息是:

16:20:35.293 [main] DEBUG org.hibernate.loader.Loader - Done entity load
现在奇怪的是,如果我使用旧的JdbcTemplate执行一条insert语句,它就可以工作了,前提是主键是1。
比如说,;
将值(1,'Hello World')插入my_表(id,value)

将起作用,测试将成功
但这不会:
将值(2,'Hello World')插入my_表(id,value)

测试将永远运行


已经在寻找类似自动增量的东西,但设置不正确,但我找不到任何东西。

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

我使用了这个答案中的第一个值:然后它就起作用了

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

我确实认为,令人恼火的是,Hibernate在发生这种情况时没有抛出异常或其他东西,而是卡住了。

您能提供导致永远运行的JdbcTemplate插入的确切代码吗?相反;默认情况下,我的测试将永远运行,并且使用问题中给出的insert语句,它将使测试结束。好的,所以我发现save()仅在更新时有效。因此,当数据库中存在ID x时,它将工作,否则它将不工作。