Take the 2-minute tour ×

i am wondering because i searched the pdf "xxx the definitive guide" and "beginning xxx" for the word "inheritance" but i didn't find anything? am i missing something? because i am doing a tablePerHierarchy inheritance with hibernate and mysql, does that become deprecated for some reason in xxx?

(replace xxx with the "not only sql" database you like)

share|improve this question
add comment

1 Answer

up vote 17 down vote accepted

I know this answer is a little late, but for MongoDB, you're probably looking at something slightly different.

Mongo is schemaless, so the concept of "tablePerHierarchy" is not necessarily useful.

Assume the following

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

In an RDMS you would probably have something like this

table A: columns X, Y, Z
table B: columns X, Y, Z, W

But MongoDB does not have a schema. So you do not need to structure data in this way. Instead, you would have a "collection" containing all objects (or "documents") of type A or B (or C...).

So your collection would be a series of objects like this:

{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

You'll notice that I'm storing objects of type A right beside objects of type B. MongoDB makes this very easy. Just pull up a Document from the Collection and it "magically" has all of the appropriate fields/properties.

However, if you have "data objects" or "entities", you can make your life easier by adding a type.

{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

This makes it easier to write a factory class for loading your objects.

share|improve this answer
hehe i didn't even remember asking this question, you are right. thanx –  nils petersohn Jun 22 '10 at 10:42
add comment

Your Answer


