This is more of a design than implementation question and it\'s going to be long so bear with me. It\'s best explained with an example:
Let\'s say I have a business
It is never a good idea to expose such implementation details. You are bounded to that library from there on. Worse, any api change of the library will couse an api i change of your service. Any security considerations left behind...
What about bean property names used in critera (a triple of property name, enum with less, equal and more and value). With a bean wrapper on your model, you may transform this to a hibernate criteria.
It will also be possible to transform this property names to a new version after a model change.