【发布时间】:2012-06-17 02:47:41
【问题描述】:
我对对话中的刷新模式有疑问:
如果我在 @Begin(..) 注释中将刷新模式设置为手动,Hibernate 仍会将附加实体上的任何更改直接填充到数据库中。
CustomerBranch 是实体
@Begin(join=true) 公共字符串 addCustBranch() 抛出异常 {
CustomerBranch customerBranch=new CustomerBranch(); BeanUtils.copyProperties(customerBranch,doCustomerBranch) branchesMap.get(selectedBranch.toLowerCase()).getCustomerBranch().add(customerBranch) custBranchesList.add(customerBranch); }
@Begin(flushMode=FlushModeType.MANUAL,join = true)
public void populateSelectedList() throws Exception {
// PersistenceProvider.instance().setFlushModeManual(getEntityManager());
((Session)getEntityManager().getDelegate()).setFlushMode(FlushMode.MANUAL);
custBranchesList.clear();
custBranchesList.addAll(branchesMap.get(selectedBranch.toLowerCase()).getCustomerBranch());
}
在上述方法中,我在这里将列表添加到 custBranchesList 我不能使用任何持久化仍然直接更改反映数据库
组件.xml
conversation-timeout="120000" parent-conversation-id-parameter="pid"/>
<web:hot-deploy-filter url-pattern="/*.mobee"/>
<persistence:entity-manager-factory installed="@seamBootstrapsPu@"
name="entityManagerFactory" persistence-unit-name="mobeeadmin"/>
<persistence:managed-persistence-context auto-create="true"
entity-manager-factory="@seamEmfRef@" name="entityManager" persistence-unit-jndi- name="@puJndiName@"/>
【问题讨论】:
-
你能激活hibernates sql log看看它发出了什么吗?
标签: hibernate jpa type-conversion seam seam2