麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲91网| 亚洲第一激情 | 涩涩操 | av在线播放电影 | 销魂美女一区二区 | 国产一区二区欧美精品 | 欧美人与牲禽动交精品一区 | 国产一级免费视频 | 狠狠99 | 欧洲成人一区 | 成人免费观看49www在线观看 | 欧美成人一区二区三区电影 | 亚洲成a人在线 | 青青草成人影视 | 日韩欧美电影一区二区三区 | 另类亚洲孕妇分娩网址 | 欧美在线观看视频一区 | 97久久人人超碰caoprom | 国产成人精品二区 | 国产在线区| 黄色片网站免费观看 | 欧美国产综合视频 | 国产亚洲高清在线精品不卡 | 毛片在线免费观看网址 | 91一级毛片| 亚洲成人福利电影 | 国产成人观看 | 精品一区二区久久久久久久网精 | 欧美精品免费一区二区三区 | 国产精品啪一品二区三区粉嫩 | 久久国产成人午夜av浪潮 | 欧美城网站地址 | 国产精品色综合 | 一级大黄毛片免费观看 | 91九色蝌蚪国产 | 久草在线视频首页 | 色综合久久久久久久粉嫩 | wwwxxx免费视频| 欧美性生活xxxxx | 国产一区二区在线免费观看 | 欧美一级黄色录像片 |