EJB-QL 的相关使用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

昨天在修改过去的J2EE项目时,使用cvs检出时把没有提交到cvs中的修改(包括以前写的,没有提交过的程序)删除了。其中CMP中EJB-QL就没有了,于是只有重写了。县总结如下:

CMP中EJB-QL的使用有以下几部分(缺一不可):

1.在Home接口中定义方法:

public java.util.Collection findByFileInfo(Integer MagazineNumber)

throws javax.ejb.FinderException,java.rmi.RemoteException;

2.在Bean中定义abstract get/setXXX方法:

private EntityContext context;

public abstract Integer getMagazineNumber();

public abstract void setMagazineNumber(Integer MagazineNum);

public abstract char getResourseType();

public abstract void setResourseType(char ResT);

public abstract String getMagazineFileName();

public abstract void setMagazineFileName(String MagaFN);

public abstract String getTypeNumber();

public abstract void setTypeNumber(String TypeN);。。。。。

3.与Bean对应在EJB对象中也要定义这些方法,不过要throws java.rmi.RemoteException.

public interface MagazineInfo extends javax.ejb.EJBObject{

public abstract Integer getMagazineNumber() throws java.rmi.RemoteException;

public abstract void setMagazineNumber(Integer MagazineNum)throws java.rmi.RemoteException;

public abstract char getResourseType()throws java.rmi.RemoteException;

public abstract void setResourseType(char ResT)throws java.rmi.RemoteException;

public abstract String getMagazineFileName()throws java.rmi.RemoteException;

public abstract void setMagazineFileName(String MagaFN)throws java.rmi.RemoteException;

public abstract String getTypeNumber()throws java.rmi.RemoteException;

public abstract void setTypeNumber(String TypeN)throws java.rmi.RemoteException;。。。。

4.在ejb-jar.xml中定义cmp中的实体的数据项和EJB-ql语句:

<entity >

<---定义实体接口描述-->

<description><![CDATA[Description for MagazinePossibleInfo]]></description>

<display-name>Name for MagazinePossibleInfo</display-name>

<ejb-name>MagazinePossibleInfo</ejb-name>

<home>bitiDL.managementConsle.magazinePossibleInfoEntity.interfaces.MagazinePossibleInfoHome</home>

<remote>bitiDL.managementConsle.magazinePossibleInfoEntity.interfaces.MagazinePossibleInfo</remote>

<local-home>bitiDL.managementConsle.magazinePossibleInfoEntity.interfaces.MagazinePossibleInfoLocalHome</local-home>

<local>bitiDL.managementConsle.magazinePossibleInfoEntity.interfaces.MagazinePossibleInfoLocal</local>

<ejb-class>bitiDL.managementConsle.magazinePossibleInfoEntity.ejb.MagazinePossibleInfoCMP</ejb-class>

<--定义为CMP--->

<persistence-type>Container</persistence-type>

<--定义容器主健-->

<prim-key-class>java.lang.Integer</prim-key-class>

<reentrant>False</reentrant>

<cmp-version>2.x</cmp-version>

<--定义在数据库中对应的表名--->

<abstract-schema-name>MagazinePossibleInfo</abstract-schema-name>

<--定义各个描述数据项,注意首字母小写,可与大写兼容同义-->

<cmp-field>

<field-name>magazineNumber</field-name>

</cmp-field>

<cmp-field>

<field-name>author</field-name>

</cmp-field>

<cmp-field>

<field-name>authorDepartment</field-name>

</cmp-field>

<cmp-field>

<field-name>authordegree</field-name>

</cmp-field>

<cmp-field>

<field-name>speciality</field-name>

</cmp-field>

<cmp-field>

<field-name>retationInfo</field-name>

</cmp-field>

<cmp-field>

<field-name>publishment</field-name>

</cmp-field>

<cmp-field>

<field-name>otherLanguageSummary</field-name>

</cmp-field>

<--定义主健-->

<primkey-field>magazineNumber</primkey-field>

<!-- Write a file named ejb-finders-MagazinePossibleInfoBean.xml if you want to define extra finders. -->

<--EJB中方法描述-->

<query>

<query-method>

<method-name>findByPossibleInfo</method-name>

<method-params>

<method-param>java.lang.Integer</method-param>

</method-params>

</query-method>

<--EJB-QL语句,可以返回对象,也可以是单个数据项-->

<ejb-ql>

<![CDATA[SELECT OBJECT(h) FROM MagazinePossibleInfo AS h WHERE h.magazineNumber = ?1]]> //其中的数字标示是参数的次序,从1开始。

</ejb-ql>

</query>

</entity>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航