From an ideological point of view, approach 1. is better. Bean Validation works at the model level (in Model-View-Controller), and there is nothing wrong with the fact that the model part speaks to the database. So, for example, you can create DAOs that can be used both with the help of a service level and with the help of model validators to avoid code duplication.
-, Bean Validation. , , ConstraintViolationException , , .. , . , , , , , , , .
, DB 1.