【问题标题】:Update only selected Fields using entityManager使用 entityManager 仅更新选定的字段
【发布时间】:2018-06-19 03:48:34
【问题描述】:

当运行以下代码仅更新选定字段时,其他字段设置为空,

    @Override
    @Transactional
    public void updateStocksPrices(Stocks stocks) {
        Query query = entityManager.createNativeQuery("UPDATE stocks set price=price+(?) WHERE id=(?)", Stocks.class);
        query.setParameter(1, stocks.getPrice());
        query.setParameter(2, stocks.getId());
        entityManager.merge(stocks);
        entityManager.flush();
    }

我正在使用spring boot,如何在不将其他字段设置为null的情况下更新我想要的字段。 谢谢

【问题讨论】:

    标签: java hibernate spring-boot jakarta-ee entitymanager


    【解决方案1】:

    如果您使用本机查询执行更新,则无需合并实体。下面的代码应该可以解决这个问题。

        @Override
        @Transactional
        public void updateStocksPrices(Stocks stocks) {
            Query query = entityManager.createNativeQuery("UPDATE stocks set price=:price WHERE id=:id");
            query.setParameter("price", stocks.getPrice());
            query.setParameter("id" stocks.getId());
            query.executeUpdate();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多