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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

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

2019-11-18 14:28:57
字體:
供稿:網(wǎng)友

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

  如:

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

  主鍵類必須實(shí)現(xiàn)hashCode和equals方法。

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

  Name.java:主鍵。

  Student.java:實(shí)體Bean類。

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

  StudentDAOBean.java:會(huì)話Bean的實(shí)現(xiàn)類

  Client.java:測(cè)試EJB的客戶端類。

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

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

  下面針對(duì)每個(gè)文件的內(nèi)容做一個(gè)介紹。

  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ā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 肇源县| 九台市| 炉霍县| 南华县| 昔阳县| 惠州市| 忻州市| 武穴市| 北宁市| 张北县| 当雄县| 菏泽市| 大安市| 共和县| 梧州市| 天峻县| 卢湾区| 梅州市| 巫溪县| 成武县| 章丘市| 巴塘县| 都江堰市| 西安市| 台东县| 盖州市| 丰原市| 乌审旗| 视频| 登封市| 水城县| 石河子市| 江津市| 祥云县| 景谷| 囊谦县| 上杭县| 突泉县| 比如县| 旌德县| 镇沅|