可能這是一個簡單的問題,但它應該已經在我的意見。我想在expDate小於當前日期的每個拍賣中設置狀態。 expDate是數據庫中的DATETIME。其實它不起作用。你能幫忙嗎? 我也試圖與CURRENT_TIMESTAMPjpa datetime比較eclipselink
Query query = entityManager.createQuery("UPDATE Auction e SET e.status = 0 WHERE e.expDate < :today");
query.setParameter("today", new Date(), TemporalType.TIMESTAMP);
編輯:
Query query = entityManager.createQuery("UPDATE Auction e SET e.status = 0 WHERE e.status = 1");
是行不通了。我使用:@PersistenceContext() EntityManager entityManager;
看來,更新查詢沒有執行。
你打電話給query.executeUpdate();? createQuery只給你一個查詢對象,然後你可以在執行之前使用它來添加提示等。 – Chris
我無法使用executeUpdate獲取來自PersistantContext的非事務性entityManager –
是的,它需要一個事務。如果您不使用JTA,請將您的更改包裝在em.getTransaction()。begin(); em.getTransaction()提交();調用,否則你需要將你的方法包裝在一個事務中,或者從容器中查找來啓動它。 – Chris