org.hibernate.exception.ConstraintViolationException 10
为什么我的代码运行一段时间后,在插入数据时就会抛出org.hibernate.exception.ConstraintViolationException这个异常呢??而...
为什么我的代码运行一段时间后,在插入数据时就会抛出org.hibernate.exception.ConstraintViolationException
这个异常呢??而重启后又可以!
注:只是插入数据异常,查询、更新、删除都正常!
<hibernate-mapping package="bean">
<class name="User" table="user">
<id name="id">
<generator class="increment" ></generator>
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<property name="name" column="name"/>
<property name="phone" column="phone"/>
<property name="question" column="question"/>
<property name="answer" column="answer"/>
<property name="email" column="email"/>
<property name="address" column="address"/>
<property name="addTime" type="java.util.Date" column="addTime"/>
<set name="by" lazy="true" inverse="true" cascade="all">
<key column="userid"/>
<one-to-many class="Baoyue"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="bean">
<class name="Baoyue" table="baoyue">
<id name="id">
<generator class="increment" ></generator>
</id>
<property name="userid" column="userid"/>
<property name="countryID" column="countryID"/>
<property name="endTime" type="java.util.Date" column="endTime"/>
</class>
</hibernate-mapping>
插入DAO方法
public int save(User user) throws Exception{
Transaction ts = null;
try{
Session ses = MySessionFactory.currentSession();
ts = ses.beginTransaction();
Serializable sid = ses.save(user);
ts.commit();
int id = Integer.parseInt(sid.toString());
return id;
} catch (Exception ex) {
if(ts!=null&&!ts.wasCommitted()){
ts.rollback();
}
throw new Exception(ex.toString());
}finally{
MySessionFactory.closeSession();
}
}
这是相关两张表的hbm.xml文件
我的代码刚开始运行是能够插入、查询、更新和删除User里的记录,但是运行一段时间后就不能往user里插数据了,抛出上面那个错误,但是还能够交叉查询、修改和删除!
我插入和更新操作只是对User而已,没有对Baoyue进行操作,但查询涉及到两张表的交叉连接!!
为什么会运行一段时间就会出错,而服务器刚跑起来时怎么插怎么行!!郁闷 - -!!
谁能告诉我啊??!!! 展开
这个异常呢??而重启后又可以!
注:只是插入数据异常,查询、更新、删除都正常!
<hibernate-mapping package="bean">
<class name="User" table="user">
<id name="id">
<generator class="increment" ></generator>
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<property name="name" column="name"/>
<property name="phone" column="phone"/>
<property name="question" column="question"/>
<property name="answer" column="answer"/>
<property name="email" column="email"/>
<property name="address" column="address"/>
<property name="addTime" type="java.util.Date" column="addTime"/>
<set name="by" lazy="true" inverse="true" cascade="all">
<key column="userid"/>
<one-to-many class="Baoyue"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="bean">
<class name="Baoyue" table="baoyue">
<id name="id">
<generator class="increment" ></generator>
</id>
<property name="userid" column="userid"/>
<property name="countryID" column="countryID"/>
<property name="endTime" type="java.util.Date" column="endTime"/>
</class>
</hibernate-mapping>
插入DAO方法
public int save(User user) throws Exception{
Transaction ts = null;
try{
Session ses = MySessionFactory.currentSession();
ts = ses.beginTransaction();
Serializable sid = ses.save(user);
ts.commit();
int id = Integer.parseInt(sid.toString());
return id;
} catch (Exception ex) {
if(ts!=null&&!ts.wasCommitted()){
ts.rollback();
}
throw new Exception(ex.toString());
}finally{
MySessionFactory.closeSession();
}
}
这是相关两张表的hbm.xml文件
我的代码刚开始运行是能够插入、查询、更新和删除User里的记录,但是运行一段时间后就不能往user里插数据了,抛出上面那个错误,但是还能够交叉查询、修改和删除!
我插入和更新操作只是对User而已,没有对Baoyue进行操作,但查询涉及到两张表的交叉连接!!
为什么会运行一段时间就会出错,而服务器刚跑起来时怎么插怎么行!!郁闷 - -!!
谁能告诉我啊??!!! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询