第一个实体
实体是一个基础的表格数据结构,一般是数据库里的一张表。一个实体值相当于数据库表中的一行。Moqui没有做对象关系映射,我们要做的是定义一个实体,然后开始使用EntityFacade(或其他更高层的工具)编写代码来使用它。
要创建一个带字段“tutorialId”和“description”、名为“Tutorial”的简单实体:
在以下位置创建一个实体XML文件:
runtime/component/tutorial/entity/TutorialEntities.xml
像这样加一个实体定义到该文件:
<?xml version="1.0" encoding="UTF-8"?> <entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/entity-definition-2.1.xsd"> <entity entity-name="Tutorial" package="tutorial"> <field name="tutorialId" type="id" is-pk="true"/> <field name="description" type="text-medium"/> </entity> </entities>
Moqui以dev模式中运行时,会自动清理实体定义缓存,所以你不必重起。在生产模式如果你不想等(因为Moqui启动非常快),你可以停止并启动JVM。
是如何在数据库中创建这张表的呢?当运行嵌入式的H2数据时,Moqui可以在运行过程中创建表,并将在第一次使用新实体时创建。这曾经也适用于MySQL,但是因为创建表的事务处理的原因,不再适用于MySQL。一般不允许在一个活跃事务中途创建表和其他的数据元数据操作,所以必须提前完成。对应大多数数据库,Moqui框架只在启动时增加缺少的表、字段、外键和索引(也可以通过配置或环境变量关闭)。