This is all covered in the documentation; I highly suggest you sit down and read through it, that really is the best way to learn it.
Quote:
First question is : The table which match to the class B does not contain all the inherited attribute, so is this possible with Hibernate no to have all the inherited attribute in the table, won't it generate an exception?
Just don't map those attributes for that particular subclass. If you don't tell Hibernate about a given (non-existent) column, its not gonna automagically know about it. A better idea would be to partition your class hierarchy a bit better.
Quote:
Second question is : The class D contain two attributes of type java Map and in the database the table matching to class D does not contain anything about the class D but only the inherited attribute, instead there is two tables with the key and the value "Map" and a attribute which is a foreign key to the table matching to class D. Can I do that with Hibernate and how.
Don't quite understand the question here. Do the tables representing the two Maps contained on "D" have a foreign key back to the "D" table? If so, then yes; that's a simple Hibernate Map association.