I'm here to hear your opinion on a discussion I had with a colleague about ORM tools (iBatis and Hibernate).
First of all, I'd like to point out that I'm not expert on these tools, although we use iBatis at work and I read the Hibernate documentation to study it, so I'm not a complete ignorant about them.
So, I know that those frameworks save you from the pains of the persistance layer since they create and manage all the operations concerned with a database, along with all the problems concerning transactions, connection handles and so on. Using them, you don't have to write tedious and repetitive classes to save or read your model to the DB, saving you a lot of work. Or, at least, a part of it!
I say a "part" because while you don't have to bother with crud operations (unless you got some more sophisticated ones, which you probably must deal with by hand anyway), you now have to put efforts in the configuration those tools need, which can lead to manage a pletora of XML files if not more. Furthermore, it seems to me you'd also need a conversion layer to translate from your business model to the one created and managed by those tools, which usually reflects the database structure and is therefore not the best to work whit at business layer. I don't know about some tool to automate the construction of this conversion layer, although I think it would be a mess to use something like that since your business model could reach a very high level of sofistication.
In the end, what we did is move a lot of work from a part (dao classes) to another (configuration and conversion).
Which makes me loose the point about ORM tools.
So, why would you recommend to use iBatis, Hibernate or such tools ?
Thank you in advance to shed some light on this always-learning rancher.