Получение ниже QueryExecutionRequestException при попытке выполнить точное обновление именованного запроса с использованием репозитория JPA.
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.company.farmer.entity.FarmProducts p set p.isDeleted=:isDeleted where p.productId IN (:productIdsList_0, :productIdsList_1)]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.company.farmer.entity.FarmProducts p set p.isDeleted=:isDeleted where p.productId IN (:productIdsList_0, :productIdsList_1)]
Код:
@Repository
public interface FarmProductRepository extends JpaRepository<FarmProducts, Long> {
void deleteProduct(@Param("isDeleted") String isDeleted, @Param("productIdsList") List<Long> productIdsList);
}
@Override
public String deleteProductAndCategory(long categoryId, FarmProductIdsDTO farmProductIds) {
farmProductRepository.deleteProduct(FarmerProductCategoryConstants.DELETE_YES_FLAG, farmProductIds.getFarmProductIds());
return FarmerProductCategoryConstants.SUCCESS;
}
@Entity
@Table(name="farm_products")
@Getter
@Setter
@ToString(exclude= "productCategory")
@NoArgsConstructor
@AllArgsConstructor
@NamedQueries({@NamedQuery(name="FarmProducts.deleteProduct", query="update FarmProducts p set p.isDeleted=:isDeleted where p.productId IN (:productIdsList)") })
public class FarmProducts extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "FARM_PRODUCT_GENERATOR")
@SequenceGenerator(name = "FARM_PRODUCT_GENERATOR", sequenceName = "FARM_PRODUCT_GENERATOR_SEQ", allocationSize = 1)
@Column(name = "farm_product_id")
public Long productId;
@ManyToOne
@JoinColumn(name = "farm_product_category_id")
@JsonIgnoreProperties("products")
public ProductCategory productCategory;
@Column(name = "product_name")
public String product;
@Column(name = "is_deleted")
public String isDeleted;
}
Я пытаюсь передать список productId, чтобы сделать isDeleted как "N". Но функциональность обновления завершается сбоем из-за исключения QueryExecutionRequestException.