views:

406

answers:

7

Hello!

I need to use an object oriented data repository for a project.
It's going to be something between a wiki and a CMS.

I'm not an expert in the field of persistence yet.
I suppose Hibernate and Jackrabbit are the frameworks to go, right?

As far as I'm informed correctly, Jackrabbit does not support
annotations or other convenience techniques for mapping
between object instances and data storage.

Hibernate, on the other hand, does not support versioning
out-of-the box.

What would you suggest me to use?
Could I in some way combine both these frameworks?

Could you also, if possible, summarize the pros and cons of the two frameworks?

Thank you!

EDIT
I really would like to use something that does NOT require me to take care of mapping objects to tables and back. Why should I? In which century do we live? ;)

I had good experience with JAXB (mapping objects to XML and back in an object-oriented way), but JAXB has no use in databases.

A: 

I would go with Hibernate. Simply because it has so vast community. Yes, I have a lot of (good) experience with Hib personally, so I'm biased.

As for versioning, well, implement it yourself -- it's not hard, just make a copy (reflection is a helper), and save the object.

Vladimir Dyuzhev
Does hibernate require a relational DB? I really would like to NOT take care of mapping object to tables and back.
ivan_ivanovich_ivanoff
Ivan, do you mind to do a basic research yourself? Не нужно ждать, что всё тебе разжуют, и положат в рот.
Vladimir Dyuzhev
You could use this argument for 90% of questions asked here. I needed a decision fast, bud had no idea about DB technology, so a asked.
ivan_ivanovich_ivanoff
A: 

You could also look into using JPA's. While they aren't the hottest thing since sliced bread, they are being adopted by the Java community and are being pushed as the new standard by the Sun community. Hibernate is safe and proven though, so I personally am going to stick with it.

amischiefr
We had a fair amount of success with OpenJPA
Kieveli
And I personally use Hibernate via JPA API
Vladimir Dyuzhev
+2  A: 

Oracle Berkeley DB Java Edition

Is a direct persistence layer (no mapping to a relational database).

Brian
+4  A: 

db4o is an object oriented database. As it's OO you store the objects directly so you don't have to maintain any mappings to tables.

Mark
+2  A: 

Try NeoDatis. It's got all the goodness of db4o (native queries, no mappings, fast) except that it's completely free (even for commercial use).

Gili
A: 

DB4o and Neodatis are the way to go...

I think that you'll need a commercial license if your project is for profit.... If so go with neodatis....

daniel
A: 

java databas technologies

ahmed