I have to make use of an object oriented data repository for any project.
It will likely be something from a wiki along with a Content management systems.
I am no expert within the area of persistence yet.
I guess Hibernate and Jackrabbit would be the frameworks to visit, right?
So far as I am informed properly, Jackrabbit does not support
annotations or any other convenience techniques for mapping
between object instances and data storage.
Hibernate, however, does not support versioning
An amount you suggest me to make use of?
Could I in some manner mix these two frameworks?
Would you also, if at all possible, summarize the benefits and drawbacks of these two frameworks?
I truly want to use something that doesn't require me to take proper care of mapping objects to tables and back. Why must I? By which century will we live? )
I'd good knowledge about JAXB (mapping objects to XML and in an object-oriented way), but JAXB doesn't have use within databases.
db4o is definitely an object oriented database. As it is OO you keep objects directly so it's not necessary to maintain any mappings to tables.
Is really a direct persistence layer (no mapping to some relational database).
Try NeoDatis. It's all of the goodness of db4o (native queries, no mappings, fast) with the exception that it's totally free (for commercial use).
UPDATE: Before I attempted NeoDatis (mid-2010) still it had some critical bugs. For instance, energy loss could cause database corruption. Beware!
I'd opt for Hibernate. Due to the fact it's so huge community. Yes, I've got a large amount of (good) knowledge about Hib personally, so I am biased.
For versioning, well, implement it yourself -- its easy, simply make a duplicate (reflection is really a assistant), and save the item.
You might consider using JPA's. When they aren't the most popular factor since sliced bread, they're being adopted through the Java community and therefore are being pressed because the new standard through the Sun community. Hibernate is protected and proven though, and so i personally will stick to it.
DB4o and Neodatis are what you want...
I believe that you will need a commercial license in case your project is perfect for profit.... If that's the case opt for neodatis....