Я пытаюсь выполнить SQLQ-оператор MySQL, используя приведенный ниже код:
public void createUpdate(Tsaleline entity) {
//Insert
String sql = "Insert into tSaleLine (CenterId, ProductId, Price, VATRate) "
+ "Select :centerId, :productId, :price, :vatrate "
+ "where (Select count(*) from tSaleLine where CenterId = :centerId and ProductId = :productId)=0; "
//Update
+ "Update tSaleLine "
+ "set CenterId = :centerId, "
+ "ProductId = :productId, "
+ "Price = :price, "
+ "VATRate = :vatrate "
+ "where CenterId = :centerId and ProductId = :productId; ";
Query q = getEntityManager().createNativeQuery(sql);
q.setParameter("centerId", entity.getCenterId())
.setParameter("productId", entity.getProductId())
.setParameter("price", entity.getPrice())
.setParameter("vatrate", entity.getVATRate())
.executeUpdate();
}
}
, но возникает ошибка:
исключение
org.apache.jasper.JasperException: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: не удалось выполнить собственный запрос массовой манипуляции