亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何提取隱藏在HibernateProxy后面的原始實體類?

如何提取隱藏在HibernateProxy后面的原始實體類?

慕妹3242003 2023-08-04 19:11:36
我為我的應用程序創建了一個 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();
}


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號