这样的问题别人很难帮你解决的,你自己找个成功的配置文件看一下(不同的server各不相同),比较一下你的relation的描述,一般你自己就可以发现问题出在哪,不难的,重要的细心。
解决方案 »
- JBOSS启动报错问题
- hibernate更新的习惯与效率的疑问
- createSQLQuery executeQuery 执行结果不一样
- 插入大量数据其中一条记录出现异常导致其它语句不执行
- Spring与Hibernate结合的时候出现的怪问题
- 500W数据去重复
- 在做sun的j2eetutorial14的bookstore例子时,执行命令asant build时出错
- 使用struts发现session乱窜
- 一个比较简单的问题
- 编写一个基于ftp的日志文件分析应用,要求在里面,求大神戳进来解答
- 調用findByPrimaryKey()時的事物問題﹐高手救命
- 关于j2ee事务处理的:使用bean管理还是容器管理好??
YHDM VARCHAR2(8) NOT NULL,
YHM VARCHAR2(30),
2
YHDM VARCHAR2(4) NOT NULL,
GNH VARCHAR2(8) NOT NULL,
XS NUMBER(1),
ZT NUMBER(1)
我在同一个包里建了两个ejb,用yhdm字段连接,然后建一个一对多的relation,编译打包都行,但布署时就出错了,提示:
In relation ejb1-ejb2, Bean: ejb1 method: getejb2 for a cmr-field is not defined on the bean class, or the parameter types are incorrect.
In bean ejb1, the cmr setXXX method, setejb2, defined for relationship, ejb1-ejb2, is not defined on the bean class, or the parameter type is incorrect. The parameter type must be the local interface type of the related bean if the related bean has a local interface.
-------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<display-name>Yhdjb</display-name>
<ejb-name>Yhdjb</ejb-name>
<local-home>com.gdc.ejb.xtyh.YhdjbHome</local-home>
<local>com.gdc.ejb.xtyh.Yhdjb</local>
<ejb-class>com.gdc.ejb.xtyh.YhdjbBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Yhdjb</abstract-schema-name>
<cmp-field>
<field-name>yhdm</field-name>
</cmp-field>
<cmp-field>
<field-name>yhm</field-name>
</cmp-field>
<primkey-field>yhdm</primkey-field>
</entity>
<entity>
<display-name>Czqxb</display-name>
<ejb-name>Czqxb</ejb-name>
<local-home>com.gdc.ejb.xtyh.CzqxbHome</local-home>
<local>com.gdc.ejb.xtyh.Czqxb</local>
<ejb-class>com.gdc.ejb.xtyh.CzqxbBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Czqxb</abstract-schema-name>
<cmp-field>
<field-name>yhdm</field-name>
</cmp-field>
<cmp-field>
<field-name>gnh</field-name>
</cmp-field>
<cmp-field>
<field-name>zt</field-name>
</cmp-field>
<cmp-field>
<field-name>xs</field-name>
</cmp-field>
<primkey-field>yhdm</primkey-field>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>yhdjb-czqxb</ejb-relation-name>
<ejb-relationship-role>
<description>yhdjb</description>
<ejb-relationship-role-name>YhdjbRelationshipRole</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<description>yhdjb</description>
<ejb-name>Yhdjb</ejb-name>
</relationship-role-source>
<cmr-field>
<description>czqxb</description>
<cmr-field-name>czqxb</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<description>czqxb</description>
<ejb-relationship-role-name>CzqxbRelationshipRole</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<cascade-delete />
<relationship-role-source>
<description>czqxb</description>
<ejb-name>Czqxb</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Yhdjb</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>Czqxb</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
<!DOCTYPE weblogic-rdbms-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'>
<weblogic-rdbms-jar>
<weblogic-rdbms-bean>
<ejb-name>Yhdjb</ejb-name>
<data-source-name>xtyhDataSource</data-source-name>
<table-map>
<table-name>YHDJB</table-name>
<field-map>
<cmp-field>yhdm</cmp-field>
<dbms-column>YHDM</dbms-column>
</field-map>
<field-map>
<cmp-field>yhm</cmp-field>
<dbms-column>YHM</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
<weblogic-rdbms-bean>
<ejb-name>Czqxb</ejb-name>
<data-source-name>xtyhDataSource</data-source-name>
<table-map>
<table-name>CZQXB</table-name>
<field-map>
<cmp-field>yhdm</cmp-field>
<dbms-column>YHDM</dbms-column>
</field-map>
<field-map>
<cmp-field>gnh</cmp-field>
<dbms-column>GNH</dbms-column>
</field-map>
<<field-map>
<cmp-field>zt</cmp-field>
<dbms-column>ZT</dbms-column>
</field-map>
<field-map>
<cmp-field>xs</cmp-field>
<dbms-column>XS</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
<weblogic-rdbms-relation>
<relation-name>yhdjb-czqxb</relation-name>
<weblogic-relationship-role>
<relationship-role-name>CzqxbRelationshipRole</relationship-role-name>
<relationship-role-map>
<foreign-key-table>CZQXB</foreign-key-table>
<primary-key-table>YHDJB</primary-key-table>
<column-map>
<foreign-key-column>YHDM</foreign-key-column>
<key-column>YHDM</key-column>
</column-map>
</relationship-role-map>
</weblogic-relationship-role>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
import java.util.Collection;abstract public class YhdjbBean implements EntityBean {
EntityContext entityContext;
public java.lang.String ejbCreate(java.lang.String yhdm) throws CreateException {
setYhdm(yhdm);
return null;
}
public void ejbPostCreate(java.lang.String yhdm) throws CreateException {
/**@todo Complete this method*/
}
public void ejbRemove() throws RemoveException {
/**@todo Complete this method*/
}
public abstract void setYhdm(java.lang.String yhdm);
public abstract void setYhm(java.lang.String yhm);
public abstract void setCzqxb(java.util.Collection czqxb);
public abstract java.lang.String getYhdm();
public abstract java.lang.String getYhm();
public abstract java.util.Collection getCzqxb();
public void ejbLoad() {
/**@todo Complete this method*/
}
public void ejbStore() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void unsetEntityContext() {
this.entityContext = null;
}
public void setEntityContext(EntityContext entityContext) {
this.entityContext = entityContext;
}
}
public abstract java.lang.String getYhdm();都去掉?那这样的话home.create不是就不行了吗,而且也得不到yhdm这个字段的值了错误提示怎么不是这样呢?迷惑中
<automatic-key-generation> <generator-type>NAMED_SEQUENCE_TABLE</generator-type> <generator-name>sequence_table</generator-name> <key-cache-size>10</key-cache-size></automatic-key-generation>用序列表来实现其中sequence_table为:create table sequence { sequence int not null //这个字段明必须为sequence int not null}
”没有人回答的话,下午结贴
为什么不在一个SQL语句里面做两个表的联查???
这样效率要高的多
这样效率要高的多
能说清楚一些吗?在EJB中怎么样实现,那是不是一个bean中要有两个表?
CMP ENTITYBEAN就没法了。