CMP makes all kind of select, insert, update statements for you.
In addition it may check for your foreign key relation.
BMP means manually coding of sql statements.
I prefere coding CMPs as it is faster and there is less risk of bugs in your statements.
Normally there is no need to use BMP for complex queries as you can create read-only cmps reading from very complex database views.
CMP are a little bit container dependent if you use advanced features from these containers. As most containers use special xml files for their advanced feature you may code for several containers at the same time.
You should use a tool like myeclipse, lomboz, jbuilder or any other to create your xml and interface files.
regards Sebastian
Things get always more complicated as expected.<br />Author of eBook Hibernate 3 Developer Guide by example<br />Tutorials about Hibernate, EJB, Struts, JSF <a href="http://www.laliluna.de" target="_blank" rel="nofollow">www.laliluna.de</a>