我正在開發一個spring boot應用程式(v2.1.5.RELEASE),使用h2作為記憶體資料庫。我創建了一個簡單的專案,有一個main和一個只有3個private欄位的模型Person.java。我根本沒有建構式,但當我啟動應用程式并打開h2控制臺時,我仍然能夠看到從物體Person創建的表。我從
uj5u.com熱心網友回復:
當沒有定義建構式時,Java會隱含地給所有的類添加一個無引數的建構式。如果你定義了任何引數化的建構式,那么無條件的建構式將不會被添加。
根據另一個SO問題,對于物體的初始化,必須要有無條件的建構式。
因此,這里的行為是完美的。
uj5u.com熱心網友回復:
模式的創建與Java建構式沒有關系。Spring和ORM供應商可以使用反射讀取java欄位,也可以考慮從注解中提供的元資訊。
建構式只是用來創建java實體。
我根本沒有建構式,但是當我啟動應用程式并打開 我沒有任何建構式,但是當我啟動應用程式并打開h2控制臺時,我仍然能夠看到從物體Person中創建的表。 物體 Person
該表是由我上面提到的所有資訊創建的。與建構式無關
至于你的第二個問題
當我們使用@entity注解時,需要一個無args的建構式。它是 是強制性的嗎?
這與ORM供應商如何制定框架以及他對框架的作業提出了哪些要求有關。具體到Hibernate,它是強制性的。
檢索自Hibernate 檔案
2.2. 物體的Java類無引數 無引數建構式,這也是JavaBean的慣例,是所有持久化類的一個要求。Hibernate需要使用Java Reflection為你創建 物件,使用Java Reflection。該建構式可以是 私有的。然而,包或公共可見性是運行時所需的 代理生成和有效的資料檢索,而不需要位元組碼 儀表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/317514.html
標籤:
上一篇:CAD_DWG圖Web可視化一站式解決方案-唯杰地圖-vjmap
下一篇:對不同的物體采用不同的模式
