原因是modusr.remove()执行之后并没有马上把database里面的记录delete掉的
你可以在modUsrHome.create之前再一次调用findByPrimaryKey,强制jboss刷新entity bean cach,然后再create
你可以在modUsrHome.create之前再一次调用findByPrimaryKey,强制jboss刷新entity bean cach,然后再create
解决方案 »
- Hibernate 中多张表连接,要求左连接,HQL语句怎么整。
- SSH 多人开发 配置文件的问题
- 在线等 webservice 问题 请好心人回答 Could not invoke service
- 现在毕业生的工资一般是多少啊?
- 帮忙看看这个问题,主要原因已找到,有关于数据流的,可能是阻塞!!
- spring 中 jpetstore 的设计和技术实现和商业项目有什么距离?
- <<<<<<<<<<<<<<<<**********有没有比较好的JNID例子或者教学**************>>>>>>>>>>>>>
- 一个页面怎么能在19秒能执行两次
- 我的*.jar文件为什么打不开?
- struts标签问题,高手请进(解决立即给分)
- 模糊中
- 紧急求救,weblogic运行系统异常,谢谢!
恩,你说的很对,我也认为肯定是cache没有及时更新,因为我等了20分钟左右再去操作是可以执行的,也就是说他的更新在20分钟左右。我也用了你的方法,也提示记录确实已经删除了。
15:10:41,974 INFO [STDOUT] 记录未找到:javax.ejb.ObjectNotFoundException: No su
ch entity!但是接下来的错误依旧。不知道在JBOSS中那里可以设置更新时间的参数?
谢谢cugarwang。对,我是把findByPrimaryKey放在try catch里面,打印出上述错误是我想确认一下数据是否真的已经删除。程序我还是让它继续执行的,就是执行modUsrHome.create("demo","01");还是出来原来的错误:“INSERTING AN ALREADY EXISTING BEAN”。第二种方法:我在XML中的cache是JBOSS默认的1000。我去改小一点试试但我也怕影响性能啊。。
改了cache后好象还是没什么效果。我改的是实体bean对应的 <list-cache-max>10</list-cache-max>
整个配置如下: <entity>
<ejb-name>TsModUsrEtyEJB</ejb-name>
<table-name>ts_modusr</table-name>
<ejb-designer-id>TsModUsrEtyEJB</ejb-designer-id>
<datasource>java:/entsys</datasource>
<datasource-mapping>Sybase</datasource-mapping>
<create-table>false</create-table>
<remove-table>false</remove-table>
<read-only>false</read-only>
<time-out>30</time-out>
<pk-constraint>true</pk-constraint>
<fk-constraint>true</fk-constraint>
<row-locking>false</row-locking>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping>
<strategy>on-load</strategy>
<page-size>1000</page-size>
<eager-load-group>*</eager-load-group>
<list-cache-max>10</list-cache-max>
<cmp-field>
你是指直接在session bean中连接数据库,然后递交SQL语句执行删除?
我整个工程都是从weblogic转移过来的,如果全要改代码的话,工作量将会很大
<container-configuration>
<container-name>Standard CMP EntityBean</container-name>
<commit-option>A</commit-option>
改成C试一试
然后在jboss.xml里面加上一条
<configuration-name>Standard CMP EntityBean</configuration-name>