EJB3.0开发指南之实体Bean的继承

学校给的忧伤

学校给的忧伤

2016-02-19 14:31

图老师小编精心整理的EJB3.0开发指南之实体Bean的继承希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~
在EJB3.0中,实体Bean可以实现继续关系。 比如有个Person的实体bean,它有姓名和性别两个属性。
  
  上帝和女娲造人的时候,造出两种人:Man和Woman。Man和Woman都是实体Bean,而且他们都继续Person。
  
  单一表策略就是副实体和子实体的数据都存放在一张表中,同时指定一列用来区别这些实体。
  
  如:
  
  @Entity
  @Inheritance(strategy = InheritanceType.SINGLE_TABLE, discriminatorType = DiscriminatorType.STRING)
  @DiscriminatorColumn(name = "P_TYPE", nullable = true)
  @ Inheritance的注释声明如下:
  @ @Target({TYPE}) @Retention(RUNTIME)
  
  public @interface Inheritance {
   InheritanceType strategy() default SINGLE_TABLE;
   DiscriminatorType discriminatorType() default STRING;
   String discriminatorValue() default "";
  }
  这个注释用来指定继续使用的策略,以及为了区别这些实体所用的列的类型与值。
  
  @DiscriminatorColumn注释用在单一表策略和联合表策略上。用来指定区别各实体所需的列。
  @Target({TYPE}) @Retention(RUNTIME)
  
  public @interface DiscriminatorColumn {
   String name() default "";
   boolean nullable() default false;
   String columnDefinition() default "";
   int length() default 10;
  }
  这个例子主要有以下几个文件,这个例子主要实现了Person和Man、Woman之间的继续关系,下面两章介绍的例子和这个例子相同。Man和Woman继续Person实体Bean。前面的例子一样,我们还是使用Client测试。
  
  Person.Java:实体Bean。
  
  Man.java:实体Bean所依靠的类。
  
  Woman.java:实体Bean所依靠的类。
  
  PersonTest.java:会话Bean的业务接口
  
  PersonTestBean.java:会话Bean的实现类
  
  Client.java:测试EJB的客户端类。
  
  jndi.properties:jndi属性文件,提供访问jdni的基本配置属性。
  
  Build.XML:ant 配置文件,用以编译、发布、测试、清除EJB。
  
  下面针对每个文件的内容做一个介绍。
  
  Person.java
  
  package com.kuaff.ejb3.singleinheritance;
  
  import javax.ejb.DiscriminatorColumn;
  import javax.ejb.DiscriminatorType;
  import javax.ejb.Entity;
  import javax.ejb.GeneratorType;
  import javax.ejb.Id;
  import javax.ejb.Inheritance;
  import javax.ejb.InheritanceType;
  
  @Entity
  @Inheritance(strategy = InheritanceType.SINGLE_TABLE, discriminatorType = DiscriminatorType.STRING)
  @DiscriminatorColumn(name = "P_TYPE", nullable = true)
  public class Person implements java.io.Serializable
  {
   private int id;
   private String name;
   private String gender;
  
   @Id(generate = GeneratorType.AUTO)
  
   public int getId()
   {
  return id;
   }
  
   public void setId(int id)
   {
  this.id = id;
   }
  
   public String getName()
   {
  return name;
   }
  
   public void setName(String name)
   {
  this.name = name;
   }
  
   public void setGender(String gender)
   {
  this.gender = gender;
   }
  
   public String getGender()
   {
  return gender;
   }
  
  }
  指定使用P_TYPE列用来区别各实体Bean。
  
  Man.java
  
  
展开更多 50%)
分享

猜你喜欢

EJB3.0开发指南之实体Bean的继承

编程语言 网络编程
EJB3.0开发指南之实体Bean的继承

EJB 3.0 开发指南之实体Bean

Java JAVA基础
EJB 3.0 开发指南之实体Bean

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

EJB3.0之实体Bean的继承

Java JAVA基础
EJB3.0之实体Bean的继承

EJB3.0开发指南之有状态会话Bean

Java JAVA基础
EJB3.0开发指南之有状态会话Bean

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

EJB3.0开发指南之无状态会话Bean

Java JAVA基础
EJB3.0开发指南之无状态会话Bean

EJB 3.0开发指南之消息驱动Bean

Java JAVA基础
EJB 3.0开发指南之消息驱动Bean

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

实战Java多线程编程精要之限制优先级

实战Java多线程编程精要之限制优先级

将MAC个人文件夹从系统盘移到其他盘的方法

将MAC个人文件夹从系统盘移到其他盘的方法
下拉加载更多内容 ↓