什么时候通过JOOQ在Spring Boot上使用Spring Data JPA,反之亦然?
[我知道Spring Data JPA可以用于完成基本的CRUD查询,但不能真正用于复杂的联接查询,而使用JOOQ则更容易?
编辑:可以同时将两个Spring数据jpa与jooq一起使用吗?
恕我直言,如果您想要一个性能良好且可维护的应用程序,其核心是使用数据库,则您不希望抽象出您正在使用数据库的事实。 JOOQ可以完全控制您,因为您可以在代码中读取和写入实际的查询,但是具有类型安全性。
JPA包含OO模型,这根本不符合数据库在所有情况下的工作方式,这可能会导致意外的查询,例如N + 1,因为您在字段上放置了错误的注释。如果您没有引起足够的重视,则在扩展应用程序时会导致性能问题。 JPA标准有所帮助,但是仍然很难编写和阅读。
因此,使用JPA,您首先要用SQL编写查询,然后用半天的时间将其转换为Criteria。在使用这两个框架多年之后,即使对于简单的CRUD应用程序,我也可以进行JOOQ(因为不存在简单的CRUD应用程序:-))。