我正在嘗試將遺留應用程序轉換爲休眠狀態。如何在Hibernate的數據庫中從字符串FQN實例化一個類?
我有一個實體有一個字段,應根據數據庫中的完全限定名稱字符串實例化爲對象實例。
請考慮下面的示例 - 如果我在數據庫中有somePackageName.FirstClass
,則someObject
字段應該是FirstClass
的實例。
我想我可以使用屬性訪問和持久/檢索一個字符串,但這看起來並不優雅。
我不能使用@PostLoad
等 - 我用彈簧(而不是JPA)純粹的休眠 - 這些註釋被忽略。
我知道例如在MyBatis中,可以註冊一個字段的自定義處理程序。在Hibernate中會有類似的東西嗎?
我是新來的冬眠,所以我不確定選項是什麼。
@Entity
class SomePersistentClass{
private SomeInterface someObject;
}
class FirstClass implements SomeInterface{
}
class SecondClass implements SomeInterface{
}
如果您正在使用'@ Entity',那麼您*正在使用JPA。 – skaffman
@skaffman使用JPA批註和使用JPA API是有區別的。持久性提供者只是利用JPA定義的註釋作爲提供映射元數據的基本手段。對於大多數人來說,我會說,使用JPA註釋並不是「使用JPA」。相反,我認爲對於大多數開發人員來說,「使用JPA」意味着使用JPA API –