ofbiz动态视图添加默认值

今天学习了一点知识:

    在使用ofbiz的DynamicViewEntity动态视图的时候,有时候会需要为查询字段赋默认值.sql语句为COALESCE(字段,默认值) ,

在DynamicViewEntity中,则需要这样写:

//往视图中添加表

        dynamicView.addMemberEntity("表的别名", "表名");

//调用ComplexAliasField 类,当给一个字段插入默认值时,使用这个方法.多个字段,用ComplexAlias(具体使用方法,类似)

  ComplexAliasField complexaliasfield=new ComplexAliasField("表的别名","字段","默认值",null);(注释:此处的null,可以修改为函数function)

//调用ModelReader,构造中的"main",代表的是framework下的entityengine.xml中的entity-model-reader的值,具体值看个人设定,默认为main

 ModelReader modelReader=new ModelReader("main");

//定义colNameBuffer进行连接字符

StringBuilder colNameBuffer=new StringBuilder();

//定义fieldTypeBuffer类型,如"varchar","numeric"等,可转换字段的类型.

StringBuilder fieldTypeBuffer=new StringBuilder();

//定义ModelViewEntity ,

ModelViewEntity modelViewEntity=dynamicView.makeModelViewEntity(delegator);

//执行complexaliasfield下的makeAliasColName方法,该方法即为赋默认值

complexaliasfield.makeAliasColName(colNameBuffer, fieldTypeBuffer, modelViewEntity, modelReader);

//将字段添加到动态视图中,最后一个属性,即为插入默认值

                 dynamicView.addAlias("表的别名","字段名","字段别名",null,false,true,null,complexaliasfield);

这样,在动态视图中,就可以插入默认值.

你可能感兴趣的:(ofbiz动态视图添加默认值)