# ES 8 Java client: BoolQuery.Builder no longer has hasClauses() method

**URL:** <https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [January 25, 2023, 8:23am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894 "2023-01-25T08:23:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![yusufozcan](https://avatars.discourse-cdn.com/v4/letter/y/c0e974/32.png) [@yusufozcan](https://discuss.elastic.co/u/yusufozcan)\
**Post date:** [January 25, 2023, 8:23am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894/1 "2023-01-25T08:23:22Z")

</div>

Hello.

We are upgrading our elastic java client from 6.8.10 to 8.1.3 and it seems [BoolQuery.Builder](https://artifacts.elastic.co/javadoc/co/elastic/clients/elasticsearch-java/8.1.3/co/elastic/clients/elasticsearch/_types/query_dsl/BoolQuery.Builder.html) doesn't have hasClauses() method anymore. Is there any workaround which provides the same functionality?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![swallez](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/swallez/32/11972_2.png) [@swallez](https://discuss.elastic.co/u/swallez)\
**Post date:** [January 25, 2023, 9:45am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894/2 "2023-01-25T09:45:18Z")

</div>

The builders only have setters. A workaround (assuming you have a `BoolQuery bq` object) is `bool hasClauses = !bq.must().isEmpty() && !bq.mustNot().isEmpty() && !bq.should().isEmpty()`

---

<div class="post-metadata">

**Author:** ![yusufozcan](https://avatars.discourse-cdn.com/v4/letter/y/c0e974/32.png) [@yusufozcan](https://discuss.elastic.co/u/yusufozcan)\
**Post date:** [January 25, 2023, 10:31am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894/3 "2023-01-25T10:31:21Z")

</div>

Thanks for your response, I was considering to go with the same approach.

In my opinion it'd have been great if we still had the built-in `hasClauses()` method not in the builder but in `BoolQuery` class 🙃

---

<div class="post-metadata">

**Author:** ![swallez](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/swallez/32/11972_2.png) [@swallez](https://discuss.elastic.co/u/swallez)\
**Post date:** [January 25, 2023, 10:33am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894/4 "2023-01-25T10:33:00Z")

</div>

This is indeed a good suggestion!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 22, 2023, 10:33am UTC](https://discuss.elastic.co/t/es-8-java-client-boolquery-builder-no-longer-has-hasclauses-method/323894/5 "2023-02-22T10:33:03Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
