首先说下我是SSH2集成。前台表单中有个name属性,当我第一次在地址栏输入注册页面进行注册的时候,可以插进数据库。
但是当我再次在地址栏输入注册页面地址进行注册的时候,就会出问题了,问题描述如下:
Messages: detached entity passed to persist: cn.ccr.bean.Person
File: org/hibernate/event/def/DefaultPersistEventListener.java
我的cn.ccr.bean.Person 代码如下:
package cn.ccr.service.impl;import java.util.List;
import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import cn.ccr.bean.Person;
import cn.ccr.service.PersonService;@Transactional
public class PersonServiceBean implements PersonService {
@Resource private SessionFactory sessionFactory;
/* (non-Javadoc)
* @see cn.ccr.service.impl.PersonService#save(cn.ccr.bean.Person)
*/
@Override
public void save(Person person){
sessionFactory.getCurrentSession().persist(person);
}
/* (non-Javadoc)
* @see cn.ccr.service.impl.PersonService#update(cn.ccr.bean.Person)
*/
@Override
public void update(Person person){
sessionFactory.getCurrentSession().merge(person);
}
/* (non-Javadoc)
* @see cn.ccr.service.impl.PersonService#delete(java.lang.Integer)
*/
@Override
public void delete(Integer person_id){
sessionFactory.getCurrentSession().delete(
sessionFactory.getCurrentSession().load(Person.class, person_id));
}
/* (non-Javadoc)
* @see cn.ccr.service.impl.PersonService#getPerson(java.lang.Integer)
*/
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
public Person getPerson(Integer person_id){
return (Person)sessionFactory.getCurrentSession().get(Person.class, person_id);
}
/* (non-Javadoc)
* @see cn.ccr.service.impl.PersonService#getPersons()
*/
@SuppressWarnings("unchecked")
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
public List<Person> getPersons(){
return sessionFactory.getCurrentSession().createQuery("from Person").list();
}}前台表单数据提交到action类的add方法以后,是这样做的:
/*
* 增加人员
* */
public String add(){
this.personServiceBean.save(this.person);//这里的this.person是一个实体bean,有俩属性id,name
this.message="增加成功";
return "add";
}对于实体bean Person.java的person.hbm.xml配置如下: <class name="Person" table="person">
<id name="id">
<generator class="native"/>
</id>
<property length="10" name="name" not-null="true"/>
</class> 望详细指点,需要其他代码部分的话请说明,或者QQ联系149802359,谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货