public void do_UPDATE(Set<Long> customerIdSet) {
final String query =
"UPDATE product_orders po " +
"INNER join customer c " +
"ON po.order_id = c.order_id " +
"SET po.updated_on = now() " +
"WHERE c.customer_id IN (:customerIdSet)";
List<Long> ids = new ArrayList<Long>(customerIdSet.size());
for(final Long id : customerIdSet) {
ids.add(id);
}
_sessionFactory
.getCurrentSession()
.createSQLQuery(query)
.setParameterList("customerIdSet", ids)
.executeUpdate();
}
我收到SQLGrammarException。這個查詢實際上運行在一個真正的MySQL控制檯中,但爲什麼Hibernate認爲它是正確的語法?休眠,無法執行具有連接的本機SQL更新查詢
'.createQuery(查詢)'? http://stackoverflow.com/questions/8636806/difference-between-hibernate-createcriteria-createquery-createsqlquery-functio – Alex
這是一個用於創建HQL查詢。 –
'.setParameter('呢?因爲你的'customerIdSet'不是'List'型 – Alex