Is it really necessary to use the seperate validator classes?
When is the validator called for fields? What the value is set? Would it be cleaner to just override the property setter to validate the value? Are the validator classes automatically used?
Same question for entity level validation. Wouldn't it be just as easy to override validate and return a bool. I'm not sure the reason to create a class for this. In most cases I doubt you would need some type of reusable entity validation.
BOb