JBuilder+Weblogic9.0实体Bean主键设置
基于Oracle数据库的配置
1 打开 EJB Module
2 右击需要设定主键的实体Bean
3 点击 Open DD Editor
4 选择Weblogic Persistence标签
5 将Automatic primary key generation框中的 Enable选项选上
6 选择Generator type后面的 NamedSequenceTable
7 在Table Name后面输入存放Sequence信息的表名(MySequenceTable)
MySequenceTable的创建:
在数据库中建立表 create table MySequenceTable (SEQUENCE number);
8 在Key cache size后面输入一个序列的开始值(1)
9 关闭EJB Module设计器
10 打开weblogic-cmp-rdbms-jar.xml
11 找到如下代码,将红色标记的字符,改成
SequenceTable
<automatic-key-generation>
<generator-type>NamedSequenceTable</generator-type>
<generator-name>MySequenceTable</generator-name>
<key-cache-size>1</key-cache-size>
</automatic-key-generation>
12 保存配置,编译打包发布
基于SQL Server数据库的配置
1 重复Oracle数据库配置的1到5步
2 选择 Generator type 后面的SQL Server 或 SQLServer2000
3 关闭EJB Module设计器
4 打开weblogic-cmp-rdbms-jar.xml
5 找到如下代码,将红色代码改成
Identity
<automatic-key-generation>
<generator-type>SQLServer2000</generator-type>
<key-cache-size>3</key-cache-size>
</automatic-key-generation>
6 保存配置,编译打包发布
注意
:
对应数据库表的主键
,
必须是数值型的字段
JBoss配置
需要在
jbosscmp-jdbc.xml
中如下设置
1 。 mysql:( 红色部分 )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:/MySqlDS</datasource>
<datasource-mapping>mySQL</datasource-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>Student</ejb-name>
<table-name>student</table-name>
<cmp-field>
<field-name>id</field-name>
<column-name>id</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>name</column-name>
</cmp-field>
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<field-name>key</field-name>
<column-name>key</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>INTEGER</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="mysql-get-generated-keys"/>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>
2 。 sql server
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<field-name>key</field-name>
<column-name>key</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>INTEGER</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="mssql-fetch-key"/>
3 。 oracle
1 。 mysql:( 红色部分 )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:/MySqlDS</datasource>
<datasource-mapping>mySQL</datasource-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>Student</ejb-name>
<table-name>student</table-name>
<cmp-field>
<field-name>id</field-name>
<column-name>id</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>name</column-name>
</cmp-field>
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<field-name>key</field-name>
<column-name>key</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>INTEGER</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="mysql-get-generated-keys"/>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>
2 。 sql server
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<field-name>key</field-name>
<column-name>key</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>INTEGER</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="mssql-fetch-key"/>
3 。 oracle
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<field-name>id</field-name>
<column-name>ID</column-name>
<jdbc-type>integer</jdbc-type>
<sql-type>integer</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="oracle-sequence">
<attribute name="sequence">seq_noble</attribute>
</entity-command>