Skip to content

第一个JDL

JDL是JHipster特定的领域语言,您可以在一个文件(或多个文件)中,使用简单易用的语法描述所有应用程序、部署、实体及其关系。 BegCode(JHipster)会解析JDL内容,并生成相应的代码。 VSCode、Eclipse、IntelliJ都已经有相应的支持插件。 这是Idea插件的效果: jdl-idea.png

一个典型的jdl文件内容一般由以下几部分组成:

md
application:应用配置
entity: 实体配置
field: 实体忏悔配置
enums: 枚举配置
relationship: 关系配置
(option): 选项配置
deployment: 部署配置
(constants): 常量配置

示例:

md
application {
config {
baseName cmsApp
}
entities Article, Category
dto \* with mapstruct
}

/** 文章 \*/
@entityPackage(cms)
entity Article {
title String /** 标题 \*/
}

/** 分类 \*/
@entityPackage(cms)
entity Category {
name String /** 名称 \*/
}

relationship ManyToOne {
/\*_ 分类 _/
Article{category(name)}
to
Category
}
paginate _ with pagination
service _ with serviceClass
filter \*
clientRootFolder Article, Category with cms

一、简要说明

1.1 application 节

表示定义了一个名称为cmsApp的应用系统。

包含Article和Category两个实体。并使用dto对实体进行转换

1.2 entity 节

声明2个实体,Article和Category,同时都包含自已的属性(字段)。

1.3 relationship 节

声明Article和Category是多对一的关系。

1.4 选项说明

paginate行 表示查询列表时使用分页功能

service行,表示直接生成service类,不使用接口方式。

filter行,表示所有的实体都生成Criteria条件封装类,用于查询。

clientRootFolder行,表示前端将Article和Category生成的文件放到cms目录中。

entityPackage行,表示2个实体生成的java文件都放到cms包下。

二、 导入jdl文件

将上述文件命名为cms.jdl文件。接下来进行导入(即生成代码)。

2.1 命令格式

md
begcode jdl ./cms.jdl

三、 冲突提示

在生成代码的过程中,除新创建的以外,可能有些文件内容会被更新,这时BegCode(JHipster)会提示冲突,由你来选项哪种处理方式。

3.1 冲突截图

conflict.png

你可以使用d来查看修改的内容,使用y进行覆盖,使用n放弃对文件内容修改,使用i放弃文件修改并以后也使用这个选项。当然还有其他的选项供选择。

四、 工作完成

以下内容表示生成工作结束。 finish.png