I am working on a Java application (an ERP) that has grown pretty large, and will continue to grow for the next couple of years. We have been using Spring-JDBC for our DAO layer. But the amount of boilerplate code that needs to be written is slowing us down significantly, not to mention introducing silly bugs in the system.
So now we're looking for a solution that will:
Reduce the amount of time we need to spend on the DAO layer
Doesn't have a very steep learning curve
Gives us control over our queries, like we have with JDBC.
We should be able port our existing code part-by-part, not all at once.
I thought MyBatis would be a good choice, but I'm not sure if it would satisfy all our requirements. In particular, would it be able to work alongside our Spring-JDBC code without creating problems in transaction management, handling concurrency etc?
Edit: Forgot to mention that we're using Spring-AOP for transaction management, which we'd prefer to continue with.