我的應用程序使用JPA創建數據庫表。我想使用JPA和/或EclipseLink API以編程方式刪除這些表(不使用DROP TABLE
命令)。 刪除由JPA框架創建的數據庫表的正確方法是什麼?以編程方式刪除數據庫表
0
A
回答
0
如果您能夠使用JPA 2.1,則可以指定提供程序編寫或讀取腳本來刪除表,從而控制執行的內容。不幸的是,除非你可以動態編寫你自己的drop table腳本,否則它不會給你很好的紋理控制。
如果不使用特定於提供者的代碼,那麼刪除特定表的唯一方法就是使用原生SQL。
在EclipseLink中,您將從EntityManager獲取會話並創建一個新的SchemaManager(會話)。有了它,你可以調用dropDefaultTables()來刪除持久單元中的所有表,或使用dropObject(DatabaseObjectDefinition)來刪除單個DatabaseObjectDefinition對象,這些對象用於表示表,存儲過程等等。您可以使用getDefaultTableCreator(boolean generateFKConstraints)來獲取PU的默認表格創建者。有了它,您可以使用getTableDefinitions()獲取表示PU中表的所有DatabaseObjectDefinition對象,以便您可以選擇一個放棄。
http://wiki.eclipse.org/EclipseLink/FAQ/JPA#How_to_access_table.2C_column_and_schema_information_at_runtime.3F 顯示如何解開EM以獲取會話。
相關問題
- 1. 如何以編程方式刪除Android Sqlite數據庫
- 2. 什麼是以編程方式刪除大型數據庫的最佳方法
- 3. BIRT:如何以編程方式刪除數據集參數
- 4. 以編程方式刷新數據庫?
- 5. 以編程方式創建數據庫
- 6. 以編程方式向數據庫添加數據表VB.NET
- 7. 使用VB.NET以編程方式刪除Mailmerge數據源
- 8. 以編程方式在android中刪除用戶數據
- 9. PowerPoint以編程方式添加和刪除元數據?
- 10. 核心數據:以編程方式更改刪除規則
- 11. 以編程方式刪除控件
- 12. Angular2以編程方式刪除組件。
- 13. data.table - 以編程方式刪除列
- 14. 如何以編程方式刪除AlertDialog
- 15. HTML5 appcache以編程方式刪除
- 16. 如何以編程方式刪除plist?
- 17. NSArrayController - 添加:&刪除:以編程方式
- 18. 以編程方式刪除NavigationController
- 19. 以編程方式刪除Web.config設置
- 20. Drupal以編程方式刪除JavaScript
- 21. 以編程方式刪除UITableViewCell
- 22. 以編程方式刪除TFS分支
- 23. 以編程方式刪除Twitter帳戶
- 24. 以編程方式刪除IE6 cookies
- 25. 以編程方式刪除prestashop訂單
- 26. 如何以編程方式刪除layout_marginStart
- 27. 以編程方式刪除datagrid列
- 28. 以編程方式刪除Outlook簽名
- 29. FLEX:以編程方式刪除警報?
- 30. ActiveMQ - 以編程方式刪除隊列
類似的,可以參考 - http://stackoverflow.com/a/2731513/366964 –