I have taken a look at JPA 2.0 Criteria API, but I found it to be too cumbersome unlike Hibernate Criteria. Is there any good reason to use JPA 2.0 Criteria API rather than
JPA 2.0 Criteria API is The Object-based API for building queries. I think it can play a good job when you have a dynamic query which can become more readable as follows
cq.select(...)
.where(...)
.orderBy(...)
.groupBy(...);
But when using static query prefer To use an externalized, maintainable and readable file
...
...
If you have a modularized application use one xml file for each module as follows
br
com
ar
moduleA
model
repository
moduleA.xml
moduleB
model
repository
moduleB.xml
moduleC
model
repository
moduleC.xml
Then you define your mappinf-file element
br/com/ar/moduleA/model/repository/moduleA.xml
br/com/ar/moduleB/model/repository/moduleB.xml
br/com/ar/moduleC/model/repository/moduleC.xml