1、继承关系中每个类都映射成一个数据库表,基类和子类共用一个id来标识。这样相当于父类和每个子类都对应自己单独的表结构。
优点就是完全符合面向对象思想,缺点是查询子类要级联查询多个表,效率低。
配置文件例子:
2、将整个类层次映射为单个数据库表。即所有的类都在一个数据库表中存储。
很显然,这种方法的缺点是浪费存储空间,每条数据都会有null的字段存在,优点就是增删查改的效率比较高。
3、将每个子类分别映射成数据库表,基类不参与映射。
优点是操作的单个表,效率高。缺点是修改基类的时候每个子类的数据库表都要修改,不支持多态查询。
现在常用的javaEE的ssh开发框架中,一般都采用第一种方法,完全面向对象的思想,易于理解开发维护。
很详细的例子:http://www.ibm.com/developerworks/cn/java/j-hibernate/