Lets take it one by one.
First annotation classes :
1) It is simple and easy to maintain and learn also
2) If you have to shift to a new database then not much changes are needed.
3) If you changes some bean name in the class, less changes.
4) It also give you a view of EJB.
Second mapping XML :
1) you can gave all the mapping in one place.
2) Easier to maintain as a whole.
3) error at one place may lead to some error at another place.So some times really messy to get the error.
Third option is you can also use a mixture of both of them
Thanks,
Ajit Singh
[email protected]www.mindfiresolutions.com