当前位置: 技术问答>java相关
我就不相信这么简单的问题没人能回答!200分,解决后立即给分!
来源: 互联网 发布时间:2015-07-21
本文导语: 1.我的一个实体bean的主关键字是一个自动增加的类型! 但我想增加一行记录时,调用home.create(Integer i)时要输入一个主关键字参数, 但现在问题是该关键字是一个自动增加的类型,应该是不用输入的呀?那我怎么传递这个...
1.我的一个实体bean的主关键字是一个自动增加的类型!
但我想增加一行记录时,调用home.create(Integer i)时要输入一个主关键字参数,
但现在问题是该关键字是一个自动增加的类型,应该是不用输入的呀?那我怎么传递这个参数呢?如果随便传递一个整数,好象与数据库自动增加的类型相矛盾呀;请高手指点!
2.再就是我用jbuilder6+weblogic6写一个实体bean(cmp2.0),什么都没有改变只是把bean的接口由local改为remote(因为entity bean缺省是local).然后用jbuilder生成了一个test client类进行测试;一切都部署好了,但总在运行时
beanHome=initial.lookup("jndiname")有错误,这是怎么回事呀?在weblogic里部署也没错呀;而且如果是session bean 就能正确运行了!
但我想增加一行记录时,调用home.create(Integer i)时要输入一个主关键字参数,
但现在问题是该关键字是一个自动增加的类型,应该是不用输入的呀?那我怎么传递这个参数呢?如果随便传递一个整数,好象与数据库自动增加的类型相矛盾呀;请高手指点!
2.再就是我用jbuilder6+weblogic6写一个实体bean(cmp2.0),什么都没有改变只是把bean的接口由local改为remote(因为entity bean缺省是local).然后用jbuilder生成了一个test client类进行测试;一切都部署好了,但总在运行时
beanHome=initial.lookup("jndiname")有错误,这是怎么回事呀?在weblogic里部署也没错呀;而且如果是session bean 就能正确运行了!
|
第一个问题:
在EJB的创建向导中,选中你的主键字段,设置: In ejbCreate()的值为false即可.然后保存,你可以查看你的home接口,create()中没有了参数,但创建后会采用自增值.
在EJB的创建向导中,选中你的主键字段,设置: In ejbCreate()的值为false即可.然后保存,你可以查看你的home接口,create()中没有了参数,但创建后会采用自增值.
|
回答关于ejb-jar.xml:)
在EJB中引用其他BEAN有两种形式:
1,直接LOOKUP另一个BEAN的JNDI实名。
2,使用ejb-link和ejb-ref来做资源引用。
通常,我更愿意采用第2种,它给系统带来了更大的灵活性,同时,减少了硬编码!
请看以下描述符:
ejb/Payrol
Entity
PayrollHome
Payroll
EmployeePayroll
... ...
现在在代码中lookup("ejb/Payrol");只是实际EJB的逻辑名,这样,如果以后
引用有变,不需要修改原代码重新编译,而只需要修改ejb-link元素,让它指向
新的BEAN
在EJB中引用其他BEAN有两种形式:
1,直接LOOKUP另一个BEAN的JNDI实名。
2,使用ejb-link和ejb-ref来做资源引用。
通常,我更愿意采用第2种,它给系统带来了更大的灵活性,同时,减少了硬编码!
请看以下描述符:
ejb/Payrol
Entity
PayrollHome
Payroll
EmployeePayroll
... ...
现在在代码中lookup("ejb/Payrol");只是实际EJB的逻辑名,这样,如果以后
引用有变,不需要修改原代码重新编译,而只需要修改ejb-link元素,让它指向
新的BEAN
|
问题1:既然是自动增加的类型,那么增加一条记录的时候,肯定是不用输入的。至于怎么传递这个参数,你可以通过
select top 1 thisID from tablename order by thisID desc
即通过降序取出最大的thisID数据,加上自动增加的幅度,就可得到此时增加一条记录的thisID,再将它作为参数传递即可,这样增加时不输入这个thisID和将这个thisID作为参数传递就并不冲突了。
select top 1 thisID from tablename order by thisID desc
即通过降序取出最大的thisID数据,加上自动增加的幅度,就可得到此时增加一条记录的thisID,再将它作为参数传递即可,这样增加时不输入这个thisID和将这个thisID作为参数传递就并不冲突了。
|
自动递增型主键在使用Entity Bean ejbCreate()没有参数。
|
二个问题,你没有具体的错误代码,不好解释。不过你最好通过
SessionBean来访问EntityBean,客户端直接访问EntityBean好像不是
J2EE规范所提倡的。
第一个问题,我也想知道答案
SessionBean来访问EntityBean,客户端直接访问EntityBean好像不是
J2EE规范所提倡的。
第一个问题,我也想知道答案
|
第二个问题,如果LOCAL INTERFACE,根据EJB2.0的规范,是不能直接用JAVABEAN形式的TESTCLIENT来调用的,最简单的方法,用一个SESSIONBEAN来调用,如果你认为这个不合适,那么你可以参看SUN颁布的J2EE蓝本,上面有对这个问题极其“复杂”的解决方法,希望能帮到你。
|
第二个问题:
把接口改为LocalRemote即可.
把接口改为LocalRemote即可.
|
UP!
|
学习
我是JAVA初学者,请问jbuilder6+weblogic6是什么组合,交际舞?
哈哈 把贴子踢到前面去。
我是JAVA初学者,请问jbuilder6+weblogic6是什么组合,交际舞?
哈哈 把贴子踢到前面去。