1. 实现一:Screem.xml 中的 section 里,加 <action>, 加 get-related
  2. 实现二:在代码中使用 DynamicViewEntity对象,加入addMemberEntity,addAlias,addViewLink,再用 find 查询
DynamicViewEntity dve = new DynamicViewEntity();

        dve.addMemberEntity("TMP", GlobalConstant.TRUST_MALL_PRODUCT_ENTITY_NAME);

        dve.addAlias("TMP", "productId");

        dve.addAlias("TMP", "productCode");

        dve.addAlias("TMP", "productName");

        dve.addAlias("TMP", "productPrice");

        dve.addAlias("TMP", "prodStatus");

        dve.addAlias("TMP", "productStandardPrice");

        dve.addAlias("TMP", "inventoryStatus");

        dve.addAlias("TMP", "productKeywords");

        dve.addAlias("TMP", "productDesc");

        dve.addAlias("TMP", "prodCreatedBy");

        dve.addAlias("TMP", "createdStamp");

        dve.addAlias("TMP", "prodModifiedBy");

        dve.addAlias("TMP", "lastUpdatedStamp");

        dve.addAlias("TMP", "shopId");

        dve.addRelation("one", "", "MallProductCategory", UtilMisc.toList(new ModelKeyMap("categoryId", "categoryId")));

        dve.addMemberEntity("MPC", "MallProductCategory");

        dve.addAlias("MPC", "categoryId");

        dve.addAlias("MPC", "sortedName");

        dve.addViewLink("TMP", "MPC", false, UtilMisc.toList(new ModelKeyMap("categoryId", "categoryId")));
  1. 实现三:在 entity.xml 里定义 view-entity 实体对象,在查询时就查这个view的对象
<view-entity entity-name="VShopReview" package-name="com.ufinity.trustmall">

        <member-entity entity-alias="SR" entity-name="ShopReview"></member-entity>

        <member-entity entity-alias="TMUI" entity-name="TrustMallUserInfo"></member-entity>

        <member-entity entity-alias="TMS" entity-name="TrustMallShop"></member-entity>

        <member-entity entity-alias="SRR" entity-name="ShopReviewReported"></member-entity>

        <alias-all entity-alias="SR"/>

<alias name="shopReviewId" entity-alias="SR" group-by="true"/>

        <alias name="userName" entity-alias="TMUI"/>

        <alias name="shopName" entity-alias="TMS"/>

        <alias name="createdStamp" entity-alias="SR"/>

        <alias name="reporterId" entity-alias="SRR" field="userId" col-alias="userId"/>

        <view-link entity-alias="SR" rel-entity-alias="TMUI">

            <key-map field-name="userId" rel-field-name="userId"/>

        </view-link>

        <view-link entity-alias="SR" rel-entity-alias="TMS">

            <key-map field-name="shopId" rel-field-name="shopId"/>

        </view-link>

        <view-link entity-alias="SR" rel-entity-alias="SRR" rel-optional="true">

            <key-map field-name="shopReviewId" rel-field-name="shopReviewId"/>

        </view-link>

    </view-entity>

ofbiz多表外键关联查询的更多相关文章

  1. 基于EF的数据外键关联查询

    现在很多ORM不自带外键关联的实体查询,比如我查询用户,用时将关联的角色信息查询出来,那么就要进行2次查询,很麻烦.而我现在要做的就是基于EF的外键关联查询.很方便的. 首先,创建基础查询的BaseS ...

  2. pythonのsqlalchemy外键关联查询

    #!/usr/bin/env python import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.dec ...

  3. .netcore2.1 ef 使用外键关联查询

    //实体类 [Table("invoiceinfo", Schema = "obs")] public class invoice { [Key] public ...

  4. sql查询指定表外键约束

    //////////////////查询指定表外键约束select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外 ...

  5. Entity FrameWork对有外键关联的数据表的添加操作

    前天做了一个MVC Entity FrameWork项目,遇到有外键关联的数据编辑问题.当你编辑的时候,按照正常的逻辑,把每个字段的数据都对号入座了,然后点击保存按钮,本以为会顺理成章的编辑数据,但是 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (29) ------ 第五章 加载实体和导航属性之过滤预先加载的实体集合和修改外键关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-13  过滤预先加载的实体集合 问题 你想过滤预先加载的实体集合,另外,你想使用 ...

  7. Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

      注:本文针对的是 Entity Framework Code First 场景. 之前写过三篇文章试图理清Entity Framework中的一对一关系(单相思(单向一对一), 两情相悦(双向一对 ...

  8. 【Python】django模型models的外键关联使用

    Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-618303.html 字段属性:http://www.cnblogs ...

  9. Python sqlalchemy orm 多外键关联

     多外键关联 注:在两个表之间进行多外键链接 如图: 案例: # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, For ...

随机推荐

  1. ACE线程管理机制-并发控制(3)

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581854.html ACE Condition类属 ACE Condition类属(条 ...

  2. HDU 2852 主席树

    KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  3. redis缓存在项目中的使用

    关于redis为什么能作为缓存这个问题我们就不说了,直接来说一下redis缓存到底如何在项目中使用吧: 1.redis缓存如何在项目中配置? 1.1redis缓存单机版和集群版配置?(redis的客户 ...

  4. 【题解】ZJOI2009 假期的宿舍 网络流 最大流

    好久没有来写博客啦,来水一发. 网络流建模首先很容易想到,如果一个人能睡一张床,那么在这个人和这张床之间连接一条容量为1的边从s向每个需要住宿的人连容量为1的边,表示这个人需要住宿从每张床向t连容量为 ...

  5. 前后端分离中,gulp实现头尾等公共页面的复用 前言

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  6. Python爬虫学习笔记之点触验证码的识别

    代码: Chaojiying.py: #!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 clas ...

  7. js高阶函数--判断数据类型、函数胡柯里化;

    一.判断数据类型: 常见的判断有typeof.instanceof. constructor. prototype,先来看typeof: var a = "hello world" ...

  8. Bzoj1312 / POJ3155 Neerc2006 Hard Life

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 459  Solved: 114 Description 在一家公司中,人事部经理与业务部经理不和.一次 ...

  9. Linux中关机,重启,注销命令

    关机: shutdown -h now  #立刻关机重启,工作中常用 shutdown -h +1    #1分钟后关机 init 0 halt                        #立即停 ...

  10. 深入理解 Java 多线程核心知识:跳槽面试必备

    多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲.在平时工作中如若使用不当会出现数据错乱.执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关 ...