hibernate的saveorupdate失效
saveorupdate()调用时候 如果ID为空会实现save方法来保存
但是当我的ID不为空时候 为什么就是不调用更新语句来更新 郁闷了很久 找不到原因
帮忙分析下
// 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;
}
<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" ref="transactionManager"/>
<property name="proxyTargetClass" value="true"/>
<property name="transactionAttributes">
<props>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
public void save(Object o) {
System.out.println("xiaoxiao");
User user=(User) getHibernateTemplate().get(User.class, 55);
user.setName("xiaoxiao");
getHibernateTemplate().save(user);
System.out.println("------" + ((User)o).getId() + ((User)o).getPassword() +((User)o).getUsername());
getHibernateTemplate().save(o);
}
xiaoxiao
Hibernate: select user0_.id as id7_4_, ..... from auth_user user0_ left outer join auth_userpermission userpermis1_ on user0_.id=userpermis1_.userid left outer join auth_permission permission2_ on userpermis1_.permissionid=permission2_.id left outer join auth_userrole userroles3_ on user0_.id=userroles3_.user_id left outer join auth_role role4_ on userroles3_.role_id=role4_.id where user0_.id=?
------63sds大时代
Hibernate: insert into auth_user (descn, name, password, status, username) values (?, ?, ?, ?, ?)