在我的測試代碼中,我需要在每種方法上都有一個空白/空數據庫。是否有代碼可以實現這一點,在測試的@Before中調用?如何刪除所有JPA實體?
回答
其實你總是可以使用JPQL,
em
.createQuery("DELETE FROM MyEntity m")
.executeUpdate()
;
但是要注意,沒有贈款實體緩存亦將清洗。但是對於單元測試而言,它看起來很不錯。
以及如何使用標準api編寫該代碼?我看不到刪除()。它僅適用於DML嗎? – simpatico 2010-07-26 09:27:27
是的,這個刪除是DML。 我通常的測試方案是添加@BeforeClass和@AfterClass(爲了您的情況將其更改爲@Before和@After)。在「清理代碼之後」清除所有添加的記錄:em.createQuery(「DELETE FROM MailMessage m where m.mailMessageId =:id」)。setParameter(「id」,message.getMailMessageId())。executeUpdate(); 因此,可能這是回答如何提供標準 – Dewfy 2010-07-26 10:27:38
em.clear()之前似乎解決緩存問題。 – simpatico 2010-07-26 10:31:29
在我的測試代碼中,我需要在每種方法都有一個空白/空數據庫。
我會運行測試方法內幕交易(並在每個方法結束回滾)。這是通常的做法。如果您剛剛刪除它們,我沒有看到提交事務並將數據寫入數據庫的要點。只是不要提交。
另一種方法(不是排除)是在測試執行之前使用DbUnit將數據庫置於已知狀態。這樣做時,通常不需要清理它。
另一種選擇是使用原始JDBC刪除數據庫(如果存在),然後讓JPA重新創建整個數據庫。雖然會很慢。
- 1. JPA - 刪除實體
- 2. JPA EntityManager不刪除實體
- 3. JPA:刪除子實體
- 4. 如何刪除與特定實體相關的所有實體?
- 5. JPA- ManyToMany關係刪除操作從輔助表中刪除所有實體
- 6. 無法刪除實體(JPA&Spring)
- 7. JPA實體批量刪除不工作
- 8. JPA /休眠刪除實體不工作
- 9. JPA - 從@ManyToMany自身刪除實體
- 10. 彈簧數據JPA不刪除實體
- 11. Spring Data JPA刪除子實體
- 12. Hibernate(Spring JPA)子實體的刪除
- 13. 刪除Entity Framework中的所有實體
- 14. 無法刪除的持久性JPA子實體刪除
- 15. 刪除實體框架中的所有相關實體
- 16. 如何從實體jpa命令中刪除版本
- 17. 如何獲得JPA實體持久/刪除但未提交?
- 18. 如何刪除實體聯接使用JPA和Hibernate
- 19. 如何刪除Azure表中的所有實體?
- 20. 如何從ManagedObjectContext中刪除給定實體的所有對象
- 21. 如何刪除實體?
- 22. 爲什麼JPA在所有者實體失去對它們的引用時不刪除擁有的實體?
- 23. JPA - 檢索所有實體類
- 24. 如何刪除GAE中所有名稱空間中的所有實體?
- 25. AUCTeX:刪除所有字體
- 26. 如何解碼除html實體外的所有實體
- 27. 刪除所有CKEditor實例
- 28. 使用JPA刪除表中的所有行使用JPA
- 29. JPA如何刪除沒有刪除孩子的父母?
- 30. 從陣列控制器中刪除實體時如何刪除實體?
你是怎麼做到的?我需要這樣做。 – 2016-04-04 07:28:07