Entity Group:就是在组名下的一组实体,组名用来指示实体代理类确定这些实体使用哪个数据源 实体定义 例:applications/product/entitydef/entitymodel.xml <entity entity-name="ProdCatalog" package-name="org.ofbiz.product.catalog" title="Catalog Entity" default-resource-name="ProductEntityLabels"> <field name="prodCatalogId" type="id-ne"></field> <field name="catalogName" type="name"></field> <field name="useQuickAdd" type="indicator"></field> <field name="styleSheet" type="url"></field> <field name="headerLogo" type="url"></field> <field name="contentPathPrefix" type="long-varchar"></field> <field name="templatePathPrefix" type="long-varchar"></field> <field name="viewAllowPermReqd" type="indicator"></field> <field name="purchaseAllowPermReqd" type="indicator"></field> <prim-key field="prodCatalogId"/> </entity>
1.2实体类型 entity:标准实体,是MVC架构中的模型(MODEL)的基本单元;简单的说,就是一个数据库表。 view-entity:视图,通常是成员实体通过一系列关系连接起来的集合 extend-view:扩展实体,实体能够通过<extend-entity>元素来扩展 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 <entity entity-name="UserLogin" package-name="org.ofbiz.security.login" title="User Login Entity"> <field name="userLoginId" type="id-vlong-ne"></field> <field name="currentPassword" type="short-varchar"></field> <field name="passwordHint" type="description"></field> <field name="isSystem" type="indicator"></field> <field name="enabled" type="indicator"></field> <field name="hasLoggedOut" type="indicator"></field> <field name="requirePasswordChange" type="indicator"></field> <field name="lastCurrencyUom" type="id"></field> <field name="lastLocale" type="very-short"></field> <field name="lastTimeZone" type="id-long"></field> <field name="disabledDateTime" type="date-time"></field> <field name="successiveFailedLogins" type="numeric"></field> <field name="externalAuthId" type="id-vlong-ne"> <description>For use with external authentication; the userLdapDn should be replaced with this</description> </field> <field name="userLdapDn" type="id-vlong-ne"> <description>The user's LDAP Distinguished Name - used for LDAP authentication</description> </field> <prim-key field="userLoginId"/> </entity>
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 <view-entity entity-name="PartyAndUserLogin" package-name="org.ofbiz.party.party" title="Party and Contact Mech View Entity"> <member-entity entity-alias="PTY" entity-name="Party"/> <member-entity entity-alias="ULN" entity-name="UserLogin"/> <alias entity-alias="PTY" name="partyId"/> <alias entity-alias="PTY" name="partyTypeId"/> <alias entity-alias="ULN" name="userLoginId"/> <alias entity-alias="ULN" name="currentPassword"/> <alias entity-alias="ULN" name="passwordHint"/> <alias entity-alias="ULN" name="enabled"/> <alias entity-alias="ULN" name="disabledDateTime"/> <alias entity-alias="ULN" name="successiveFailedLogins"/> <view-link entity-alias="PTY" rel-entity-alias="ULN"> <key-map field-name="partyId"/> </view-link> <relation type="one-nofk" rel-entity-name="Party"> <key-map field-name="partyId"/> </relation> <relation type="one-nofk" rel-entity-name="UserLogin"> <key-map field-name="userLoginId"/> </relation> </view-entity>
2.3扩展试图(extend-entity) 属性: entiy-name:实体名 子元素 field:字段 relation:关系 index:索引 例:applications/party/entitydef/entitymodel.xml <extend-entity entity-name="UserLogin"> <field name="partyId" type="id"></field> <relation type="one" fk-name="USER_PARTY" rel-entity-name="Party"> <key-map field-name="partyId"/> </relation> <relation type="one-nofk" rel-entity-name="Person"> <key-map field-name="partyId"/> </relation> <relation type="one-nofk" rel-entity-name="PartyGroup"> <key-map field-name="partyId"/> </relation> </extend-entity>
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<String ,? extends Object> fields) 指定字段(and组合)查询:public List<GenericValue> findByAnd(String entityName,Map<String,? extends Object> fields) 条件查询:public List<GenericValue> findList(String entityName,EntityCondition entityCondition,Set<String> fieldsToSelect,List<String> orderBy,EntityFindOptions findOptions,boolean useCache) 查询列表:public List<GenericValue> findList(String entityName,EntityCondition entityCondition,Set<String> fieldsToSelect,List<String> 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 迭代器