【发布时间】:2021-05-03 04:00:31
【问题描述】:
我是 Spring WebFlux 反应式的新手。我使用 R2DBC postgresql。我有一个这样的存储库:
public interface BookRepository extends ReactiveCrudRepository<Book, Long> {
}
现在我想添加自定义方法来查询许多复杂的条件:
public interface CustomBookRepository extends BookRepository {
Flux<Book> findByVeryComplicatedCondition(MyCriteriaDto criteria);
}
我的实现:
public class CustomBookRepositoryImpl extends CustomBookRepository {
//How to get it?
EntityManager em;
@Override
public Flux<Book> findByVeryComplicatedCondition(MyCriteriaDto criteria) {
Query query = em.createQuery("SELECT b from Book b WHERE (VERY COMPLICATED CONDITIONS)");
//What next?
}
}
我的问题在上面的代码中:
- 如何获取EntityManager?
- 如何从我构建的 HQL 查询中获取 Flux?
当我问这些问题时,我的意思是“如何使用 Spring 反应式/r2dbc 方式做到这一点”,而不是“如何使用 JDBC 做到这一点”
【问题讨论】:
-
在您在这里提问之前,您是否阅读过 spring R2DBC 的文档?
-
正如我所提到的,我是 Spring WebFlux 的新手。我已经阅读了一些文档,但它们是关于 R2DBC MongoDB 的。我找不到任何关于自定义 HQL 的资源
-
好吧,如果你真的查了一下HQL是什么,它代表Hibernate Query Language,而R2DBC不支持Hibernate,如果你google R2DBC和Hibernate,这很容易google。此外,如果您使用 google
R2DBC documentation,您将被带到官方文档,在那里您可以阅读有关它支持的内容以及您可以做什么和不可以做什么的所有信息。 meta.stackoverflow.com/questions/261592/… -
你是新手,并不代表你不能看文档,相反,当你是新手时,你应该先看文档,然后再问。
-
如果我不能使用 HQL,你能建议我另一种支持查询复杂条件的机制吗?
标签: java hibernate spring-webflux spring-data-r2dbc