这个和单表策略差不多,唯一不同就是在存存储的时候规定每一个实体bean映射到独立的一张表上。

如:

@Entity

@Inheritance(strategy = InheritanceType.JOINED, discriminatorType = DiscriminatorType.STRING)

@DiscriminatorColumn(name = "P_TYPE", nullable = true)

在这个策略下,每个实体Bean也是映射成各自独立的一张表,但是和每类一表策略不同的是,子实体bean的映射的表中只有新增的属性。

子实体bean通过联合父表得到数据。

 

@InheritanceJoinColumn和@InheritanceJoinColumns用来指定联合的列名,如果不指定,外键将采用和父表主键相同的名称。


这个例子主要有以下几个文件,这个例子主要实现了Person和Man、Woman之间的继承关系,这个例子和上一个例子没多大差别,就是在实体Bean注释的时候将InheritanceType.SINGLE_TABLE换成

InheritanceType.JOINED

 

请运行{$JBOSS_HOME}/bin目录下的run.bat:  run –c all,启动JBOSS。

​,然后调用startDatabaseManager()方法,打开HSQL管理工具管理数据库。

 

在Eclipse的Ant视图中执行ejbjar target。或者在命令行下,进入到此工程目录下,执行ant ejbjar,将编译打包发布此EJB。

 

 

在Eclipse的Ant视图中执行run target。或者在命令行下,进入到此工程目录下,执行ant run,测试这个EJB。