- One point is to separate the model from business logic, so that you can refactor your tables and model beans with minimal impact on BL.
- The other way e.g. you do not define Foreign Keys in DB and/or dependencies in your entities then they are loosely coupled but actually your model dependencies are coded in your BL tier, and your table dependencies are hidden in the Model tier which is not safe in most cases.
To clear up things: in current implementation both of these (and much more) are possible, user is never forced to go with 1.
In your example use case this is some kind of validation. In most cases validation is in close relation to the Model field values and the implementation can be easily covered by Hibernate Validator. There are exceptional cases when validation is more complex and rather part of BL, I experience such almost in each project, then I usually follow the old proven Transfer Object/Value Object pattern, but I think this is the exception here. So, I would follow 1.
Thank you very much for your reply.