一步一步学EJB3.0(四):实体Bean开发

EJB3.0实体Bean开发是是很简单的,主要就是学习标注的使用, 现在EJB3实体Bean是纯粹的POJO.实际 上这表达了和Hibernate持久化实体对象同样的概念.它们的映射都通过JDK5.0注解来定义(EJB3规范已经 定义了对应的XML描述语法).注解分为两个部分,分别是逻辑映射注解和物理映射注解,通过逻辑映射注解 可以描述对象模型,类之间的关系等等,而物理映射注解则描述了物理的schema,表,列,索引等等.

这些标注都封装在javax.persistence包下,如果是使用Hibernate则在下载包里有个叫ejb3- persistence.jar的jar包,他就是用来完成开发支持EJB3的实体类的包,大部分和JDK5兼容的IDE(象 Eclipse, IntelliJ IDEA 和Netbeans等等)都提供了注解接口和属性的自动完成功能.(这些不需要IDE提 供特别的EJB3支持模块,因为EJB3注解是标准的JDK5注解)这里不作详细介绍,还是进入本文的主题吧.

每一个持久化POJO类都是一个实体bean,这可以通过在类的定义中使用@Entity注解来进行声明,如下所 示: 1 @Entity  //标识该JavaBean为一个实体Bean

2 @Table(name=”orm_oto_users”) //标识该实体Bean映射到数据库的那一张表

3 public class User {

通过@Entity注解将一个类声明为一个实体bean(即一个持久化POJO类),Table则是标识该实体映射到数 据库的那一张表.

在对一个类进行注解时,你可以选择对它的的属性或者方法进行注解,根据你的选择,Hibernate的访问 类型分别为field或property. EJB 3规范要求在需要访问的元素上进行注解声明,例如,如果访问类型为 property就要在getter方法上进行注解声明,如果访问类型为field就要在字段上进行注解声明.应该尽量 避免混合使用这两种访问类型.

1 @Entity  //标识该JavaBean为一个实体Bean  2 @Table(name="orm_oto_users") //标识该实体Bean映射到数据库的那一张表  3 public class User {  4    5   @Id //Id用于标识该字段为主键字段  6   @Column(name="user_id") //映射到数据库的user_id字段  7   //主键生成策略  8   @GeneratedValue(strategy=GenerationType.SEQUENCE,generaTor="user_id_seq")  9   private Long id;1011   @Column(name="FIRST_NAME")12   private String firstName;1314   @Column(name="LAST_NAME")15   private String lastName;1617   private String email;1819   private String Password;2021   @Temporal(TemporalType.DATE)22   private Date created;2324   @OneToOne(mappedBy="user",cascade=CascadeType.ALL)25   private Address address;2627   public User() {28     super();29     // TODO Auto-generated construcTor stub30   }3132   public User(String firstName, String lastName, String email,33       String password, Date created) {34     super();35     this.firstName = firstName;36     this.lastName = lastName;37     this.email = email;38     Password = password;39     this.created = created;40   }4142   public User(Long id, String firstName, String lastName, String email,43       String password, Date created) {44     super();45     this.id = id;46     this.firstName = firstName;47     this.lastName = lastName;48     this.email = email;49     Password = password;50     this.created = created;51   }5253   public Address getAddress() {54     return address;55   }5657   public void setAddress(Address address) {58     this.address = address;59   }6061   public Date getCreated() {62     return created;63   }6465   public void setCreated(Date created) {66     this.created = created;67   }6869   public String getEmail() {70     return email;71   }7273   public void setEmail(String email) {74     this.email = email;75   }7677   public String getFirstName() {78     return firstName;79   }8081   public void setFirstName(String firstName) {82     this.firstName = firstName;83   }8485   public Long getId() {86     return id;87   }8889   public void setId(Long id) {90     this.id = id;91   }9293   public String getLastName() {94     return lastName;95   }9697   public void setLastName(String lastName) {98     this.lastName = lastName;99   }100101   public String getPassword() {102     return Password;103   }104105   public void setPassword(String password) {106     Password = password;107   }108 }

如上,便是一个完整的实体Bean,里面我们使用了如@Entity,@Id之类的标注,这正是ejb 3.0的新特性, 本文只是作一个简单的介绍,详细请大家查看相关书籍或资料.

世界上那些最容易的事情中,拖延时间最不费力。

一步一步学EJB3.0(四):实体Bean开发

相关文章:

你感兴趣的文章:

标签云: