• ofbiz学习笔记01--多表关联查询


    不管做什么项目,肯定会用到多表关联查询数据,从网络查询得知ofbiz有三种多表关联查询方法

    1. 实现一:Screem.xml 中的 section 里,加 <action>, 加 get-related
    2. 实现二:在代码中使用 DynamicViewEntity对象,加入addMemberEntity,addAlias,addViewLink,再用 find 查询
    3. 实现三:在 entity.xml 里定义 view-entity 实体对象,在查询时就查这个view的对象

    1,方法没写出来,以后再补充

    2, 使用finddListIteratatorByCondtion把他查出来

    DynamicViewEntity dve = new DynamicViewEntity();
                dve.addMemberEntity("tt", "AA");
                dve.addAlias("tt", "userName");
                dve.addAlias("tt", "sex");
                
                  dve.addRelation("one", "", "BB", 
                          UtilMisc.toList(new ModelKeyMap("userName", "userName")));
                
                dve.addMemberEntity("te", "BB");
                dve.addAlias("te", "userName");
                dve.addAlias("te", "name");
                dve.addRelation("one", "", "AA", 
                          UtilMisc.toList(new ModelKeyMap("userName", "userName")));
                dve.addViewLink("te", "tt", false, UtilMisc.toList(new ModelKeyMap("userName", "userName")));
                
                EntityListIterator salesUsageIt = delegator.findListIteratorByCondition(dve, null,null, null, null, null ); 
                list= salesUsageIt.getCompleteList();

    3,方法按我的理解就是相当于平常根据几张表建一个view视图,再查询这个view

    配置view-entity,之后查这个视图就可以了。

    <view-entity entity-name="Vview" package-name="org.ofbiz.test">
    
            <member-entity entity-alias="TY" entity-name="AA"></member-entity>
    
            <member-entity entity-alias="TT" entity-name="BB"></member-entity>
            <alias-all entity-alias="TY"/>
            
    		<alias name="userName" entity-alias="TY" group-by="true"/>
            <alias name="userName" entity-alias="TY"/>
    		<alias name="sex" entity-alias="TY"/>
            <alias name="name" entity-alias="TT"/>
            <alias name="address" entity-alias="TT"/> 
    
            <alias name="userName" entity-alias="TY" field="userName" col-alias="userName"/>
    
            <view-link entity-alias="TY" rel-entity-alias="TT">
                <key-map field-name="userName" rel-field-name="userName"/>
            </view-link>
            <alias name="userName" entity-alias="TT" field="userName" col-alias="userName"/>
    
        </view-entity>
    

      

  • 相关阅读:
    C#(99):Queue<T>队列与Stack<T>堆栈
    C#(99):字典Dictionary<Tkey.TValue>与SortedList
    C#(99):列表:List<T>与HashSet和只读集合
    C#(99):C#数组Array
    C#(99):枚举类型与位域枚举Enum
    C#(99):结构类型:Struct
    C#(99):定义类成员(属性、方法、索引、运算符、事件)、接口实现
    C#(99):定义类、System.Object对象、构造函数与析构函数、抽象类与静态类
    SuperSocket.ClientEngine介绍
    C#(99):五、并行编程
  • 原文地址:https://www.cnblogs.com/aliger/p/4563923.html
Copyright © 2020-2023  润新知