我有一個名爲Execution的hibernate實體。它在我的流程開始時創建,並在最後更新,表明它是如何完成的。更新JPA-Hibernate實體而不從數據庫中選擇它
我想更新此實體的單個屬性,而不會在我的數據庫中導致選擇。
Execution execution = entityManager.getReference(Execution.class, executionId);
execution.setStatus(Status.FINISHED);
// - >調用此方法在我的數據庫中激發SELECT。我不想讓它發生,我只想更新我的實體。
這不是特定於此方法的任何其他方法,稱爲SELECT子句中的結果。實際上,即使在我的方法被調用之前,select也會發生。我的印象是,hibernate代理將一些代碼放在我的類無參數構造器中,以在每次調用任何方法時觸發一個選擇。
是否可以在不觸發數據庫中的SELECT語句的情況下更新JPA/Hibernate實體?
我會接受這個答案作爲正確的答案。通過使用JPA-QL批量更新/插入http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/batch.html#batch-direct – user266391 2010-02-25 17:25:50
,我碰到了一個更簡單的解決方案@ user266391我不熟悉JPA,所以感謝鏈接:-) – 2010-02-25 20:28:01