技术开发 频道

关于EJB的持久化对象技术分析


部署描述文件
 
  要将你开发的EJB部署到EJB容器中去的话,那你必须为此容器提供一个部署描述文件。部署描述文件是一个XML格式的文档,文件名为ejb-jar.xml,里面包含有Bean的持久类型以及事务属性。你必须将这个文件与编写的Java类一起打包到一个jar或ear文件中去。
 
  ejb-jar.xml是由SUN公司提供的一个标准部署描述文件,JBoss还有另外一个名为jaws.xml的部署描述文件,这个文件描述了CMP定义以及其持久属性。
 
<?xml version="1.0"?>
 
<!DOCTYPE ejb-jar PUBLIC
 
"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
 
"http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
 
<ejb-jar>
 
<display-name>Users</display-name>
 
<enterprise-beans>
 
<entity>
 
<description>封闭一个用户对象</description>
 
<ejb-name>UserEJB</ejb-name>
 
<local-home>com.jeffhanson.datatier.ejb.LocalUserHome</local-home>
 
<local>com.jeffhanson.datatier.ejb.LocalUser</local>
 
<ejb-class>com.jeffhanson.datatier.ejb.UserEJB</ejb-class>
 
<persistence-type>Container</persistence-type>
 
<prim-key-class>java.lang.String</prim-key-class>
 
<reentrant>False</reentrant>
 
<cmp-field><field-name>USERID</field-name></cmp-field>
 
<cmp-field><field-name>FULLNAME</field-name></cmp-field>
 
<cmp-field><field-name>ADDRESS</field-name></cmp-field>
 
<cmp-field><field-name>CITY</field-name></cmp-field>
 
<cmp-field><field-name>STATE</field-name></cmp-field>
 
<cmp-field><field-name>ZIP</field-name></cmp-field>
 
<primkey-field>USERID</primkey-field>
 
</entity>
 
</enterprise-beans>
 
<assembly-descriptor>
 
<container-transaction>
 
<method>
 
<ejb-name>UserEJB</ejb-name>
 
<method-name>*</method-name>
 
</method>
 
<trans-attribute>Required</trans-attribute>
 
</container-transaction>
 
</assembly-descriptor>
 
</ejb-jar>
 
  上面描述了主键的名字和类型,以及实体EJB的哪些域将被持久化。如果关系数据库中没有一个名为"UserEJB"的表的话,那容器会自动建立一个相应的表。
 
  下面,每一个域都定义了一个相应的cmp-field元素。当容器自动建立一个新表时,它会由此得知要创建那些新的字段,并将域与特定的字段对应起来。
 
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<jaws>
 
<datasource>java:/DefaultDS</datasource>
 
<type-mapping>Hypersonic SQL</type-mapping>
 
<enterprise-beans>
 
<entity>
 
<ejb-name>UserEJB</ejb-name>
 
<create-table>true</create-table>
 
<table-name>UserEJB</table-name>
 
<remove-table>false</remove-table>
 
<tuned-updates>false</tuned-updates>
 
<read-only>false</read-only>
 
<time-out>300</time-out>
 
<cmp-field>
 
<field-name>USERID</field-name>
 
<column-name>USERID</column-name>
 
</cmp-field>
 
<cmp-field>
 
<field-name>FULLNAME</field-name>
 
<column-name>FULLNAME</column-name>
 
</cmp-field>
 
<cmp-field>
 
<field-name>ADDRESS</field-name>
 
<column-name>ADDRESS</column-name>
 
</cmp-field>
 
<cmp-field>
 
<field-name>CITY</field-name>
 
<column-name>CITY</column-name>
 
</cmp-field>
 
<cmp-field>
 
<field-name>STATE</field-name>
 
<column-name>STATE</column-name>
 
</cmp-field>
 
<cmp-field>
 
<field-name>ZIP</field-name>
 
<column-name>ZIP</column-name>
 
</cmp-field>
 
</entity>
 
</enterprise-beans>
 
</jaws>
 
  UserEJB的部署方法如下:先将部署描述文件与编译好的类一起打成一个jar包,然后将这个包放在JBoss服务器的deploy目录下就可以了,JBoss会自动发现这个包,并自动进行部署。
0
相关文章