关于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>
0
相关文章