Hibernate 批更新从更新[0]返回了意外的行计数;实际行数:0;预期:1

Hibernate 批更新从更新[0]返回了意外的行计数;实际行数:0;预期:1,hibernate,Hibernate,错误:org.hibernate.MappingException:未知实体:com.myapp.struts.timesheetForm 当试图使用hibernate框架从Struts中的Action类中的Bean保存数据时,会发生上述错误 主要文件: timeSheet.jsp timesheetForm.java timeSheetAction.java TimeSheetData.java是我的pojo 使用hibernate从数据库中提取数据很容易,而且工作起来很有魅力。timeSh

错误:org.hibernate.MappingException:未知实体:com.myapp.struts.timesheetForm

当试图使用hibernate框架从Struts中的Action类中的Bean保存数据时,会发生上述错误

主要文件:

timeSheet.jsp
timesheetForm.java
timeSheetAction.java
TimeSheetData.java是我的pojo

使用hibernate从数据库中提取数据很容易,而且工作起来很有魅力。timeSheet.jsp填充得非常完美

我计划在timesheetaction.java中将更新的数据保存到数据库中

我基于表单数据创建了一个bean对象

我基于timesheetdata.java创建了一个对象

我使用beanutils将formbean的属性复制到pojo中

然后通过会话对象进行更新

我已经计算出它是空的,但这是我能计算出的

Session sess = HibernateUtil.getSessionFactory().getCurrentSession();
sess.beginTransaction();
timesheetForm formBean = (timesheetForm)form;
timeSheetData formData = new TimeSheetData();
formBean.setAdditionhours4_1(formBean.getAdditionhours1_1());
BeanUtils.copyProperties(formData, formBean);
sess.update(formData);
sess.getTransaction().commit();
sess.flush();
sess.close();

我认为没有可用于更新的记录

会话sess=HibernateUtil.getSessionFactory().getCurrentSession();
Session sess = HibernateUtil.getSessionFactory().getCurrentSession();

    Transaction tx = sess.beginTransaction();
    // extract user data
    timesheetForm formBean = (timesheetForm)form;

int count = 0;
   int loopConstraint = 0;

   while(loopConstraint < dataList.size())
   {

      int ID = Integer.parseInt(dataList.get(loopConstraint).toString());
      TimeSheetData formData = (TimeSheetData) sess.load(TimeSheetData.class, ID);

   //relevant additions to database

    sess.update(formData);
      sess.flush();
      sess.clear();

   }
      tx.commit();
事务tx=sess.beginTransaction(); //提取用户数据 时间表窗体bean=(时间表窗体)窗体; 整数计数=0; int loopConstraint=0; while(loopConstraint
请检查hibernate映射,通过更改anotations中的可更新和可插入参数,可以轻松解决此问题

例如,在我的例子中,我通过改变它来解决它:

@OneToMany
@JoinColumn(name = "columnPK", updatable = true, insertable = true)
private List<ObjectX> relatedElments;
@OneToMany
@JoinColumn(name=“columnPK”,updateable=true,insertable=true)
私有列表相关元素;
为此:

@OneToMany
@JoinColumn(name = "columnPK", updatable = false, insertable = false)
private List<ObjectX> relatedElments;
@OneToMany
@JoinColumn(name=“columnPK”,updateable=false,insertable=false)
私有列表相关元素;

解释是,当您尝试插入/更新其他“超级”表时,此参数阻止hibernate更新相关表。因此,请检查所有hibernate Anotation。

我在数据库中有60条记录,bean工作正常,正如我所检查的,它确实可以通过数据库获取数据/