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

首頁 > 學院 > 開發(fā)設計 > 正文

EJB 3.0開發(fā)指南之組合主鍵

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

  在前面的所有的實體Bean的例子中,我們所用的主鍵都是Id,而且都是由容器自動生成的。

  如:

@Id(generate = GeneratorType.AUTO)
public int getId()
{
 return id;
}
  事實上,主鍵可以是任意的java基本類型、或者是基本類型的包裝類,如Integer、String類型、或者是帶字段或屬性的主鍵類。注重,假如這樣使用主鍵,你需要將主鍵的注釋中的生成規(guī)則改為NONE。就是由程序生成主鍵值。

  主鍵類必須實現hashCode和equals方法。

  這個例子前面舉例過,就是一個存儲學生信息的實體bean,在那個例子中,使用Name類作為屬性,并且以Id作為主鍵,在這個例子中,我們將使用name作為主鍵,注重name的類型一個java類。和前面的例子一樣,我們還是使用Client測試。

  Name.java:主鍵。

  Student.java:實體Bean類。

  StudentDAO.java:會話Bean的業(yè)務接口

  StudentDAOBean.java:會話Bean的實現類

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

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

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

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

  Name.java

package com.kuaff.ejb3.composite;

import java.io.Serializable;
import javax.ejb.accessType;
import javax.ejb.DependentObject;

@DependentObject(access = AccessType.PROPERTY)

public class Name implements java.io.Serializable
{
 private String first;
 private String last;

 public Name()
 {
 }

 public Name(String first, String last)
 {
  this.first = first;
  this.last = last;
 }

 public String getFirst()
 {
  return first;
 }

 public void setFirst(String first)
 {
  this.first = first;
 }

 public String getLast()
 {
  return last;
 }

 public void setLast(String last)
 {
  this.last = last;
 }

 public int hashCode()
 {
  return (first+last).hashCode();
 }

 public boolean equals(Object object)
 {
  if (this == object) return true;
  if (object == null) return false;
  if (! (object instanceof Name)) return false;
  Name name = (Name)object;
  if ((name.first.equals(first)) && (name.last.equals(last)))
   return true;
  else
   return false;
 }

}
  Student.java

package com.kuaff.ejb3.composite;

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 Name name;
 private String grade;
 private String email;

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

 @Id(generate = GeneratorType.NONE)
 @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;
  StudentDAO.java



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人免费视频视频在线观看 免费 | 午夜影视一区二区 | 国产精品久久久久久久久久妇女 | 欧美成人精品一级 | 国产亚洲欧美日韩高清 | 精品中文字幕久久久久四十五十骆 | 国产精品99免费视频 | 日韩精品中文字幕一区二区三区 | 成人毛片100部免费观看 | 色婷婷久久久亚洲一区二区三区 | 久久6国产| 在线播放视频一区二区 | 久久久久99一区二区三区 | 国产福利视频在线观看 | 欧美精品一级 | 日本在线视频一区二区三区 | 337p日本欧洲亚洲大胆精蜜臀 | 久久久资源网 | 最新欧美精品一区二区三区 | 5xsq在线视频 | 国产91精品欧美 | 中文字幕欧美日韩 | 欧美精品在线视频观看 | 神马久久精品综合 | 双性帝王调教跪撅打屁股 | 久久777国产线看观看精品 | 日韩视频精品一区 | av免费片| 国产宾馆3p国语对白 | 亚洲国产高清一区 | 欧美成人精品欧美一级乱黄 | 黄色免费电影网址 | 妇子乱av一区二区三区 | av电影手机在线看 | 欧美成人精品一区二区三区 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | sm高h视频| 久久成人视屏 | 免费一级特黄做受大片 | 久久久久久久久久久综合 | 在线亚洲播放 |