国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

EJB 3.0 開發指南之依賴值對象

2019-11-18 14:28:53
字體:
來源:轉載
供稿:網友

  在上面的章節我們提到,實體bean的屬性可以是java基本對象、Date等,事實上,實體Bean的屬性也可以是其他的java對象。這些Java對象不能直接從持久化上下文中讀取,它依靠于主實體bean。不象關聯實體Bean,在EJB3.0中不支持依靠值對象的集合。

  依靠值對象不支持繼續,這將在EJB3.1中在討論。

  依靠類需要使用◎DependentObject來注釋:

@Target({TYPE}) @Retention(RUNTIME)
public @interface DependentObject {
 accessType access() default PROPERTY;
}
  這個注釋可以指定容器訪問這個類的方法,是通過屬性還是直接通過字段來訪問。

  在實體Bean的一個屬性需要使用依靠值對象,那么這個屬性的get方法需要使用@Dependent注釋:

@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface Dependent {
 DependentAttribute[] value() default {};
}
  這個注釋可以指定依靠的屬性DependentAttribute:

@Target({}) @Retention(RUNTIME)

public @interface DependentAttribute {
 String name();
 Column[] column() default {};
}
  可以指定屬性名稱和映射的列名。這里,一個主實體Bean的屬性可以映射到數據表中的多列。

  假如你還不太明白,看下面的例子。

  這個例子主要有以下幾個文件,這個例子主要實現了治理學生的功能。Student是一個實體Bean,這個Bean的name屬性是一個類,也就是Name類,這個Name類就是一個依靠值對象。StudentDAOBean是一個無狀態的會話Bean,用來調用實體Bean。和前面的例子一樣,我們還是使用Client測試。

  ·Student.java:實體Bean。

  ·Name.java:實體Bean所依靠的類。

  ·StudentDAO.java:會話Bean的業務接口

  ·StudentDAOBean.java:會話Bean的實現類

  ·Client.java:測試EJB的客戶端類。

  ·jndi.properties:jndi屬性文件,提供訪問jdni的基本配置屬性。

  ·Build.xml:ant 配置文件,用以編譯、發布、測試、清除EJB。

  下面針對每個文件的內容做一個介紹。

  Student.java

package com.kuaff.ejb3.dependent;

import javax.ejb.Dependent;
import javax.ejb.DependentAttribute;
import javax.ejb.Column;
import javax.ejb.Entity;
import javax.ejb.GeneratorType;
import javax.ejb.Id;
import javax.ejb.Table;

@Entity @Table(name = "STUDENT") public class Student implements java.io.Serializable
{
 private int id;
 private Name name;
 private String grade;
 private String email;

 @Id(generate = GeneratorType.AUTO)

 public int getId()
 {
  return id;
 }

 public void setId(int id)
 {
  this.id = id;
 }

 public void setName(Name name)
 {
  this.name = name;
 }

@Dependent(
{ @DependentAttribute(name = "first", column ={ @Column(name = "FIRST") }),
 @DependentAttribute(name = "last", column ={ @Column(name = "LAST") }) })
 public Name getName()
 {
  return name;
 }

 public void setGrade(String grade)
 {
  this.grade = grade;
 }

 @Column(name = "GRADE")

 public String getGrade()
 {
  return grade;
 }

 public void setEmail(String email)
 {
  this.email = email;
 }

 @Column(name = "EMAIL")

 public String getEmail()
 {
  return email;
 }
}

  Student.java實現了Student實體Bean,它提供學生的基本情況。學生的姓名是Name類,通過@Dependent(

{ @DependentAttribute(name = "first", column ={ @Column(name = "FIRST") }),

@DependentAttribute(name = "last", column ={ @Column(name = "LAST") }) })

來聲明,并指定這個依靠類的兩個屬性first和last,并映射到數據表的FIRST和LAST列上。

  Name.java



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌江| 宁都县| 射洪县| 凌海市| 塘沽区| 常熟市| 淅川县| 大渡口区| 同心县| 江安县| 五华县| 石景山区| 静安区| 丰城市| 内黄县| 广水市| 新田县| 陈巴尔虎旗| 安福县| 广德县| 肇东市| 凉城县| 布拖县| 奉贤区| 茂名市| 麦盖提县| 宁陕县| 温泉县| 长顺县| 峨山| 沁源县| 上栗县| 陈巴尔虎旗| 阿合奇县| 华阴市| 武陟县| 绥德县| 和龙市| 镇江市| 西昌市| 衡阳县|