数据未持久存储在数据库中

时间:2019-04-19 01:34:54

标签: java spring hibernate

我正在尝试进行更新,但是虽然我看到休眠查询返回的是更新的行数,但是数据并没有持久化。

这是我在日志中看到的更新行数:

  • 开始更新与年轮的订婚
  • 完成对年轮的订婚:3
  • 参与度环数3

但是,这不是数据库中反映的内容。

我已经尝试使用@Component创建另一个类,并使用@Transactional注释该方法。

这是主要课程

@Component
@Transactional
public class StatutEngagementJobAction extends GenericJobAction { 

private boolean executeAction(Tenant tenant, DateTime deadline, BigDecimal abattement, Set<DateTime> legalDays) {

  annulationEngagementNonRespecte();

}

public void annulationEngagementNonRespecte() {
        LOGGER.info("STARTING annulation engagement ");
        List<StatutEngagementDTO> annulations = new ArrayList<>();
        List<String> engagementIdsToAnnuler = new ArrayList<>();
        List<StatutEngagementDTO> allEngagementNonRespecteActif = engagementDAO.findAllEngagementNonRespecteActif();

        for (StatutEngagementDTO engagementDTO : allEngagementNonRespecteActif) {
            Engagement engagementNonRespect = engagementDAO.find(engagementDTO.getIdEngagement());
                                engagementIdsToAnnuler.add(engagementNonRespect.getIdEngagement());
                    annulations.add(engagementDTO);

        if (CollectionUtils.isNotEmpty(engagementIdsToAnnuler)) {
            int num = engagementDAO.updateEngagement(engagementIdsToAnnuler);
            LOGGER.info("Number of engagement annuler {} ", num);
        }

        LOGGER.info("END annulation engagement ");
    }
  

此方法被称为进行更新,并在另一个类中找到

@Override
    public int updateEngagement(List<String> engagementIdsToAnnuler){
        LOGGER.info("START UPDATING engagement to annuler ");
        String queryString =
                "UPDATE Engagement " +
                "SET etat = :etat , statut = :statut " +
                "WHERE idEngagement IN :engagementIdsToAnnuler";

        Query query = getFilteredCurrentSession().createQuery(queryString);
        query.setParameter("etat", EngagementEtatType.ACTIF);
        query.setParameter("statut", EngagementStatutType.NON_RESPECTE);
        query.setParameterList("engagementIdsToAnnuler", engagementIdsToAnnuler);

        int updatedEngagement = query.executeUpdate();
        LOGGER.info("DONE UPDATING engagement to annuler: {} ", updatedEngagement);
        return query.executeUpdate();

    }
  

更新查询实际上正在工作。但是数据仍然没有被保留   实际:数据未保留预期:数据应为   坚持到数据库

0 个答案:

没有答案