我為我的應用程序創建了一個 Mapper 類,它提供了一個簡單的使用界面:Destination destination = mapper.map(sourceObject, Destination.class);//or justmapper.map(sourceObject, destination);Mapper 實例包含由 ClassPair 映射的轉換器的映射:class ClassPair() { private Class sourceType; private Class destinationType; ...}class Mapper { private Map<ClassPair, Converter> converters; ...}問題是,當我嘗試將持久實體轉換為另一種類型時,我的映射器因 NPE 失敗。這是因為持久化實體的類型不是該實體的原始類,而是生成的 HibernateProxy 實現。我嘗試過使用Hibernate.unproxy()方法,但它在所有應用程序中都占有一席之地。它確實有效,但是我認為這是一個非常糟糕的做法。因此,我需要以某種方式確定實體的原始類。
1 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
每個HibernateProxy
實例都可以訪問其底層延遲初始化處理程序,該處理程序具有所需的信息。
if (value instanceof HibernateProxy) { return ((HibernateProxy) value).getHibernateLazyInitializer().getPersistentClass(); }
添加回答
舉報
0/150
提交
取消