Spring JpaRepository可以从接口方法名称生成SQL查询:
File Usage: Entity type
如你所见 - 它可能很复杂。因此,方法名称可能不正确并且发生编译器错误。
问题:
在真实项目中使用它之前是否可以检查/验证方法名称(需要一些编译时间,试验和错误)?
或者也许可以在使用之前将这样的方法名称转换为SQL - 以查看此方法名称是否有效以及它是否正确执行所有操作?
当然,显而易见的方法是制作较小的项目以供测试。但我觉得这一定是更好的方式。
感谢您的任何建议。
答案 0 :(得分:0)
您可以使用测试数据库和Spring测试运行器编写测试。有多种方法可以做到这一点,所以我只是给出一个粗略的草图来帮助你开始:
hibernate.hbm2ddl.auto=create
)hibernate.hbm2ddl.import_files
)@RunWith(SpringJUnit4ClassRunner.class)
使用JUnit运行测试。@ContextConfiguration
指向测试Spring上下文@Transactional
使测试具有事务性,并自动回滚测试方法中的任何更改@Autowire
EntityManager
和Spring Data存储库,并在测试中使用它们。请参阅Integration Testing上的Spring文档。
答案 1 :(得分:0)
有点晚了,但是......
如果要在不编译界面的情况下测试方法名称,可以在 org.springframework.data.repository.query.parser 中找到名为 PartTree 的类。在 spring-data-commons:1.12.6 jar。
new PartTree(stringVersionOfMethodName,classOfEntityRepoIsFor)
如果它无法正确解析名称,它将抛出异常。
对于maven,我使用的是1.4.3.RELEASE的spring-boot-starter-parent,包括spring-boot-starter-data-jpa依赖