Hibernate抛出错误消息。但是将数据保存到数据库中

时间:2017-07-11 18:12:23

标签: java mysql hibernate

我们在项目中使用Hibernate和MySQL。我们使用saveOrUpdate()方法来更新数据。 我们的问题当我们首先更新现有数据时,我们正在检查一些条件。如果这些条件通过,我们会抛出错误,如下面的代码段。 另外我们正在保存数据。我们在saveOrUpdate()方法中调试并检查。它不会saveOrUpdate()。但有些数据如何保存到数据库中。

这是DAO图层

 public List<Student> getOverlappingStudentDetails(String studentId, String classNumber){
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Student.class, "student");
    criteria.add(Restrictions.eq("student.id", studentId));
    criteria.add(Restrictions.eq("student.classNumnber", classNumber));
    return criteria.list();
}

public Student save(Student student) {
Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(student);
session.flush();
return student;
}

这是服务实施

  private void checkForOverlappingStudentDetails(Student student) {
        List<Student> overlappingStudents = studentDAO.getOverlappingStudentDetails(student.getStudentId(),student.getClassName());
        if (overlappingStudents.size() >0 ) {
            throw new ValidationException(student.getName() + " is already present." ;
    }
}

抛出错误。但是,数据覆盖了数据库。是否有任何解决方案可以阻止数据进行更新。我们尝试了session.clear(),并在保存方法后使用了session.flush()方法。

0 个答案:

没有答案