|
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 迭代器 |
|
|