At the company I work for we’ve struggled for many weeks with using a commercial library for object to relational database mapping. It is supposed to hide the details of the database, make changes to the database easy (i.e. a change to a table doesn’t alter the code), and get caching of data as well. It has definitely not worked as we expected and in the end we are going to have to replace it.
Apparently in this day and age using simple SQL to access your data is just too arcane to speak of so you have to have some kind of tool to map your objects to a database. Two of the ones we are looking at are both from Apache:
I’m very interested to see whether either of these will make the job of moving data into and out of an application any easier.
Checkout hibernate hibernate.org as well.
I second that, take a look at Hibernate if you are looking for a well-written, well-documented O/R layer.
Not sure which commercial tool you’ve been trying, but I’ve had great luck with Solarmetric’s KodoJDO (http://www.solarmetric.com). Fast, well-documented, easy to use, and they provide excellent support.
In addition, the package is relatively cheap, and is runtime royalty-free, so you can distribute the runtime with your apps. We never have to touch our database tables anymore–Kodo just handles our classes as part of an ant task, and we’re off and running.
I screwed up the link. It’s http://www.solarmetric.com. Sorry.
Did not have good experience with Torque on a project we used it on. Mucho problems with connections, background threads, and transactions. Doesn’t play as nice in J2EE (EJB) environment as we had hoped.
I have also tried Hibernate, but only in pretty trivial cases so far. The documentation is definitely stellar!
If you have a chance, checkout the book “Patterns of Enterprise Application Archicture” – Martin Fowler. In there it deals with various aspects of Database mappings, among other things, and dicusses the pros and cons of various approaches/patterns. While the book won’t provide a solution to your problem, it will help you think more clearly about the problem.
Hmm? TopLink?
I was actually told by several people at work that TopLink was worse than Cocobase (which is currently used as a curseword where I work).
You really must check-out JDOGenie from Hemisphere Technologies (http://www.hemtech.co.za/) for a JDO implementation that /rocks/. Benchmarks show it to be way, way faster than other JDO implementations (and it is fully compliant with the JDO spec, unlike others that make the claim…)
No more O/R mapping pain for me….
(I have no affiliation with Hemisphere Tech, other than as a very happy JDOGenie user.)