我正在运行 spring + hibernate + JUnit,springJunit4runner 和事务设置为默认回滚我使用内存中的 derbydb 作为数据库。Hibernate 被用作 JPA 提供程序,我正在成功测试 CRUD 类型的东西。但是,我对 JPA 和 @GeneratedValue 的行为有疑问
如果我单独运行其中一个测试,则两个实体的 id 为 1 和 2。如果我运行整个测试套件,则 id 为 6 和 7。Spring 可以很好地回滚,因此数据库中只有这两个实体添加之后,当然之前为零。但是 @GeneratedValue 的行为不允许我可靠地 findById 除非我从
dao.add(Entity e) //method
为了测试,我不想这样做,或者返回持久存在的实体是一种好习惯,所以无论如何我都应该这样做?