回答
JPA不提供「即時」模式更新(當然不適用於實體類的動態更新)。
某些提供程序將允許在創建EMF(例如DataNucleus JPA)時添加列,以便可以重新加載實體類。這就是全部。除此之外,重新構建您的應用程序
嗯...明白了,也許重新設計師是唯一的方式。謝謝。 – helloworld1234
有幾種方法可以做到這一點,主要是通過persistence.xml
中的屬性。一種標準的方法是使用javax.persistence.schema-generation.scripts.create-script-source
,這可能會或可能不會在您每次啓動web應用程序時運行,最有可能導致啓動時出現異常並可能導致數據被破壞。
在Hibernate中,您可以根據您的實體使用hibernate.hbm2ddl.auto
至update
來更新您的表格。
在那裏的EclipseLink是eclipselink.ddl-generation
財產。 create-or-extend-tables
設置似乎是適當的。
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/p_ddl_generation.htm
然而,一般來說,使用JPA保持你的模式是比預先寫好的腳本在更新生產服務器的Web應用程序時手動更新它不太可靠。
- 1. 通過JPA
- 2. 通過JPA
- 3. SQL JPA,通過
- 4. 如何通過JPA
- 5. 如何通過JPA
- 6. 如何通過JPA
- 7. 有關通過JPA
- 8. 通過EJB 3.0,JPA
- 9. 通過JPA /休眠
- 10. JPA @OrderBy()通過關係表
- 11. 與最低值通過JPA
- 12. 春天JPA通過REST
- 13. 集團通過爲JPA
- 14. 的Java JTable中通過JPA
- 15. Spring數據JPA。通過在
- 16. 數據通過使用JPA
- 17. 要通過彈簧JPA
- 18. JPA通過調用函數添加額外字段
- 19. 通過BindingSource向DataGridView添加新條目
- 20. 通過KeyDown向DataGridView添加新行
- 21. 通過JPA中的過程更新表數據
- 22. 通過循環向TableLayoutPanel添加列表
- 23. 無法在數據庫中通過persistence.xml使用Hibernate Jpa,Tomcat和Mysql添加表
- 24. JPA CRITERIA查詢通過加入列的順序
- 25. JPA 2.0:如何通過JPA提高批量插入性能
- 26. JPA通過ID不是實體
- 27. 在通過休眠+ JPA兩個實體
- 28. 集團通過時間戳JPQL與JPA
- 29. JPA Hibernate通過maven生成元模型
- 30. 如何通過計數()在JPA
我認爲最簡單的解決方案可能是找到解決方法,以便需要用戶修改數據庫模式。你能否介紹一下業務邏輯? –
由於用戶(客戶端)無法直接與數據庫模式通信,所以這就是爲什麼我希望實現這種方式來允許在客戶端更新數據庫... – helloworld1234
這並不真正回答我的問題。爲什麼客戶端會被允許修改數據庫模式?例如,如果允許添加新列,那麼如何防止惡意攻擊?您現在必須擔心流氓用戶通過創建數千個列來進入桌面並使其爆炸。 –