日期:2014-05-19  浏览次数:20738 次

hibernate的saveorupdate失效
saveorupdate()调用时候 如果ID为空会实现save方法来保存
但是当我的ID不为空时候  为什么就是不调用更新语句来更新 郁闷了很久 找不到原因
帮忙分析下

我的pojo一些代码

// Property accessors
@Id
@GeneratedValue(generator = "paymentableGenerator")    
@GenericGenerator(name = "paymentableGenerator", strategy = "identity") 
public Integer getId() {
return this.id;
}

public void setId(Integer id) {
this.id = id;
}

@OneToMany(mappedBy="user",fetch=FetchType.EAGER)
public Set<UserPermission> getUserPermissions() {
return userPermissions;
}

public void setUserPermissions(Set<UserPermission> userPermissions) {
this.userPermissions = userPermissions;
}

@OneToMany(mappedBy="user",fetch=FetchType.EAGER)
public Set<UserRole> getUserRoles() {
return this.userRoles;
}

public void setUserRoles(Set<UserRole> userRoles) {
this.userRoles = userRoles;
}

 我的web.xml 和事物的一些配置

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class> 
<init-param>  
           <param-name>flushMode</param-name>  
           <param-value>AUTO</param-value>  
       </init-param> 
       <init-param>  
           <param-name>singleSession</param-name>  
           <param-value>true</param-value>  
       </init-param>  
   </filter>  
   
 <filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/j_acegi_security_check</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping> 


<!--applicationContext的配置-->


 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">    
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>    
   </bean> 
 
 <bean id="baseTransaction" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" 
           abstract="true"> 
           
         <property name="transactionManager"&nbs