# Find entities used by all validators on single class before validation process starts, so these entities can be reused and not pulled from the database again and again

**URL:** <https://discourse.hibernate.org/t/find-entities-used-by-all-validators-on-single-class-before-validation-process-starts-so-these-entities-can-be-reused-and-not-pulled-from-the-database-again-and-again/3989>\
**Category:** Hibernate Validator\
**Created:** [April 8, 2020, 6:59am UTC](https://discourse.hibernate.org/t/find-entities-used-by-all-validators-on-single-class-before-validation-process-starts-so-these-entities-can-be-reused-and-not-pulled-from-the-database-again-and-again/3989 "2020-04-08T06:59:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Milan\_Batica](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.hibernate.org/milan_batica/32/1017_2.png) [@Milan\_Batica](https://discourse.hibernate.org/u/Milan_Batica)\
**Post date:** [April 8, 2020, 6:59am UTC](https://discourse.hibernate.org/t/find-entities-used-by-all-validators-on-single-class-before-validation-process-starts-so-these-entities-can-be-reused-and-not-pulled-from-the-database-again-and-again/3989/1 "2020-04-08T06:59:32Z")

</div>

In project i’m currently working on, we use a lot of java bean validations. In many of these validations we need to retrieve entities from data layer so they can be used during validation process.

Let’s say for example we have class `Car.java`

```auto
@FirstValidation
@SecondValidation
public class Car {

   private Engine engine;

   private List<Tires> tires;

...

}

```

`@FirstValidation` constraint code looks like:

```auto
public class FirstValidationValidator implements ConstraintValidator<FirstValidation, Car> {

    private final EngineRepository engineRepository;

    @Override
    public boolean isValid(Car car, ConstraintValidatorContext context) {
        Engine engine = engineRepository.findEngineByCarId(car.getId());
        // do some validation with engine instance
    }

}

```

`@SecondValidation` constraing code looks like:

```auto
public class SecondValidationValidator implements ConstraintValidator<SecondValidation, Car> {

    private final EngineRepository engineRepository;

    @Override
    public boolean isValid(Car car, ConstraintValidatorContext context) {
        Engine engine = engineRepository.findEngineByCarId(car.getId());
        // do some validation with engine instance
    }

}

```

What i’m interested is there a way i can find entities used in validations before validations start and put them in some kind of context, so i don’t have to extract these entities for every validation separately?
