?
企業管理及信息化解決方案;--因為專注,所以專業!
客服熱線:028-86272612
成都藍源 -> > EDP資訊 -> 詳細內容
藍源EDP2.0.1版本補丁
時間: 2012-05-26    來源:

在該補丁中,主要針對easyjweb中的一些組件的性能和使用性做出改進:

1,POLoad標簽增加延遲加載功能。EasyJweb中的@POLoad標簽默認使用getJpaTemplate().find(clz, id)獲取對象,這種策略在QueryObject中會產生很多不必要的SQL查詢。在該補丁中,為@POLoad增加了lazy屬性:

@POLoad(lazy=true)
private Client client;

保證對象的延遲加載。

2,在GenericDAO中增加了兩個方法:

    //執行原生SQL查詢,不帶分頁

    List executeNativeSQL(final String nnq,final Object[] params);

    //執行原生SQL的單結果集查詢

    Object getNativeSingleResult(String sql, Object[] params);

3,如果在使用JPA時,采用的是field的access方式,那么延遲加載在獲取id的時候也會額外的發送SQL:

   class{

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

   }

那么,即使該類是延遲加載的:

dao.getReference(clazz, id);

在調用obj.getId()的時候,仍然會發出SQL。解決的方法,1是按標準的JPA寫法,采用property access的方式,2,使用該補丁提供的org.hibernate.tuple.entity.PojoEntityTuplizer覆蓋hibernate3.5提供的。該PojoEntityTuplizer會自動的在嘗試得到IdGetter之后,采用property的方式再去得一次,避免id對應的getter方法的proxy。

 

補丁下載地址:下載

 



3.62K
上一篇:藍源EDP2.01版本更新日志
下一篇:沒有了
  贵州快3走势图带连线