我是使用S2SH整合开发项目.
为什么我在删除一条数据的时候,
方法体的代码要写成:
this.getHibernateTemplate().delete(this.getHibernateTemplate().load(Role.class,roleId));为什么要this.getHibernateTemplate().load(Role.class,roleId)
为什么首先要对数据进行加载?
这个加载具体做了一些什么操作,有什么意义 .?
为什么要加载以后才能够对数据进行删除.?再比如说我要查找某条特定的用户信息
则要写成
public User findUser(int userId)
{
return (User)this.getHibernateTemplate().load(User.class, userId);
}
想知道它其中的原理,整体是怎么运行的...
为什么我在删除一条数据的时候,
方法体的代码要写成:
this.getHibernateTemplate().delete(this.getHibernateTemplate().load(Role.class,roleId));为什么要this.getHibernateTemplate().load(Role.class,roleId)
为什么首先要对数据进行加载?
这个加载具体做了一些什么操作,有什么意义 .?
为什么要加载以后才能够对数据进行删除.?再比如说我要查找某条特定的用户信息
则要写成
public User findUser(int userId)
{
return (User)this.getHibernateTemplate().load(User.class, userId);
}
想知道它其中的原理,整体是怎么运行的...
你用的是void org.springframework.orm.hibernate3.HibernateTemplate.delete(Object entity) throws DataAccessException
this.getHibernateTemplate().delete(new Role(roleId));
(User)this.getHibernateTemplate().load(User.class, userId)
这样写是因为你 使用了hibernate模板,并使用延迟加载取得userId对应的记录,他会返回一个po(持久类)对象User,
而User.class就是为了告诉hibernate组装po。
第一个问题
this.getHibernateTemplate().delete(this.getHibernateTemplate().load(Role.class,roleId));
delete里面就是为了得到这个Role这条记录,然后删除这个持久类信息。
这是API上面的方法,里面还有删除的方式,
比如楼上this.getHibernateTemplate().delete(new Role(roleId));
或是你自己写一句sql语句,利用getHibernateTemplate()执行也是可以的