jpa中大字段的非映射属性的懒加载实现

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Lob;
import javax.persistence.Transient;

import org.hibernate.bytecode.internal.javassist.FieldHandled;
import org.hibernate.bytecode.internal.javassist.FieldHandler;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ycsys.business.entity.base.TemporalEntity;

/**
 * Created by ll on 2017/12/15.
 */
@Entity
public class AnimalScience2   implements FieldHandled {
   
    
    @Lob  
    @Basic(fetch = FetchType.LAZY)   
    @Column(name="detail") 
    private String detail; //图文交替型内容(用文本编辑器)

   
    public String getDetail() { 
         if (fieldHandler != null) {  
             return (String) fieldHandler.readObject(this, "detail    ", detail);  
          }  
      return null;
    }

    public void setDetail(String detail) {
          if(fieldHandler!=null){  
                fieldHandler.writeObject(this, "detail", this.detail, detail);  
                return;  
            }  
            this.detail = detail; 
        }
    @Transient     
    private FieldHandler fieldHandler;//用于延迟加载表字段,关联对象延迟加载的话无需此技术  
    
    @JsonIgnore
    public FieldHandler getFieldHandler() {  
        return fieldHandler;  
    }  
  
    public void setFieldHandler(FieldHandler fieldHandler) {  
        this.fieldHandler = fieldHandler;  
    }  
}

以上是对detail做的懒加载的实现

参考:https://blog.csdn.net/qq804702802/article/details/49279065



猜你喜欢

转载自www.cnblogs.com/longsanshi/p/9122745.html