EJB3.0开发指南:实体Bean的继承:联合表策略
这个和单表策略差不多,唯一不同就是在存存储的时候规定每一个实体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。
http://localhost:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss%3Aservice%3DHypersonic%2Cdatabase%3DlocalDB,然后调用startDatabaseManager()方法,打开HSQL管理工具管理数据库。
在Eclipse的Ant视图中执行ejbjar target。或者在命令行下,进入到此工程目录下,执行ant ejbjar,将编译打包发布此EJB。
在Eclipse的Ant视图中执行run target。或者在命令行下,进入到此工程目录下,执行ant run,测试这个EJB。