国产探花免费观看_亚洲丰满少妇自慰呻吟_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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 珠海市| 阳春市| 大埔县| 镇平县| 高尔夫| 克拉玛依市| 长岭县| 嘉禾县| 沙田区| 阳东县| 张北县| 武川县| 万荣县| 宁城县| 灵川县| 井冈山市| 丰宁| 任丘市| 巫溪县| 濮阳县| 奈曼旗| 谷城县| 饶平县| 新巴尔虎右旗| 临海市| 宾阳县| 通海县| 台东县| 北辰区| 虹口区| 平乐县| 治县。| 随州市| 巩义市| 肥东县| 阿克苏市| 泌阳县| 德阳市| 瑞丽市| 华池县| 武清区|