设为首页 收藏本站
查看: 2229|回复: 0

[经验分享] Apache OFBiz 学习笔记 之 实体引擎

[复制链接]

尚未签到

发表于 2015-8-3 10:48:19 | 显示全部楼层 |阅读模式
1、概述

    entity engine和常见的ORM有一点很大的不同,他的mapping object只有一个 GenericEntity,称它的entity engine 为adaptive object model更为合适一些,是一种比较灵活,代码量非常少的独特的持久化方案。使用entity engine做的项目和其他的ORM相比有一个很明显的特征:非常少的对象



    基于Entity Engine 对数据库进行建模完全屏蔽了各种数据库的差别,可以支持从MySql到Oracle几乎所有的关系数据库



    Entity Engine提供了简单有效的数据建模方式,通过简单的XML文件来描述实体,不需要写任何代码就能实现实体的创建,存储,删除,查找,排序,再也不需要写任何代码就能实现实体的创建,存储,删除,查找,排序,再也不需要编写和维护数据持久化的代码,通过JDBC支持任意种类的数据库





1.1 实体引擎的概念



    DataSource:数据源,在一个数据库实体中可以有多个数据库schema,不同的schema覆盖各自的实体。数据源定义和配置在entityengine.xml中



    Entity Delegators:实体代理,使用实体代理来访问数据库

例:framework/entity/config/entityengine.xml






  




  


    Entity Group:就是在组名下的一组实体,组名用来指示实体代理类确定这些实体使用哪个数据源



实体定义

例:applications/product/entitydef/entitymodel.xml






   











  




1.2实体类型



    entity:标准实体,是MVC架构中的模型(MODEL)的基本单元;简单的说,就是一个数据库表。



    view-entity:视图,通常是成员实体通过一系列关系连接起来的集合



    extend-view:扩展实体,实体能够通过元素来扩展



2.1标准实体(entity)

    属性:
    entity-name: 实体名

    table-name:表名

    package-name:包名

    default-resource-name:缺省资源文件名

    dependent-on:指定父级实体和依赖的实体,仅用来指定层次化实体结构

    sequence-bank-size:序列号步长

    enable-lock:是否在这个实体上使用优化锁


    子元素:
    description:说明

    field:字段

    prim-key:主键

    relation:关系

    copyright:版权

    index:索引

例:framework/security/entitydef/entitymodel.xml   






















For use with external authentication; the userLdapDn should be replaced with this


The user's LDAP Distinguished Name - used for LDAP authentication



  


2.2视图(view-entity)

    属性:




    entity-name:实体名



    package-name:包名



    dependent-on:依赖关系



    default-resource-name:缺省资源名



    never-cache:从不缓存



    auto-clear-cache:自动清除缓存



    title:标题



    copyright:版权



    author:作者



    version:版本




    子元素:




    description:说明



    member-entity:成员实体



    alias-all:所有别名



    alias:别名



    view-link:试图连接



    relation:关系




例:applications/party/entitydef/entitymodel.xml






   




















  

2.3扩展试图(extend-entity)

    属性:

    entiy-name:实体名

    子元素

    field:字段

    relation:关系

    index:索引

例:applications/party/entitydef/entitymodel.xml






   











  

3、GenericValue对象

    一个GenericValue对象就是数据库实体的一条记录

4、创建、更新、删除、数据库记录

4、1创建实体

1、获取GenericValue实体对象

OFBiz中提供了多种获取实体对象的方式,推荐使用下面的方式

GenericValue tempValue = delegator.makeValue("EntityName");





4、2更新实体



4、3删除实体





5、几种取数据库记录

5.1几个常用的查询方法

通过主键查询:public GenericValue findByPrimaryKey(String entityName,Map fields)

指定字段(and组合)查询:public List findByAnd(String entityName,Map fields)

条件查询:public List findList(String entityName,EntityCondition entityCondition,Set fieldsToSelect,List orderBy,EntityFindOptions findOptions,boolean useCache)

查询列表:public List findList(String entityName,EntityCondition entityCondition,Set fieldsToSelect,List orderBy,EntityFindOptions findOptions,boolean useCache)

参数说明:

String entityName:要查询及记录的实体

EntityCondition entityCondition :限制获取的条件

Set fieldsToSelect :返回记录获取的字段,null为全部

List orderBy :排序字段,null为排序

EntityFindOptions findOptions 查找选项

boolean useCache 是否使用缓存



6、动态视图实体

DynamicViewEntity 动态视图

   

EntityCondition条件

EntityFunction 函数

EntityOperator 操作

EntityFindOptions 查询选项

EntityListIterator 迭代器

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93617-1-1.html 上篇帖子: Apache 开启 GZip 压缩 下篇帖子: [Django 1.5] Windows + Apache + wsgi配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表