企业管理及信息化解决方案;--因为专注,所以专业!
客服热线: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版本更新日志
下一篇:没有了