`

jHipster JDL 教程

阅读更多

JDL jHipster专用的生成实体的语言。(大部分翻译自JDL )

在jHipster的项目,生成实体需要的文件:

a database table;-表中对应的表

a Liquibase change set;-Liquibase 的changelog,在src\main\resources\config\liquibase\changelog目录下的文件

a JPA entity class;-JPA实体类 src\main\java\com\binana\amas\domain目录下(应该是,错了请评论)

a Spring Data JpaRepository interface;- src\main\java\com\binana\amas\repository 目录下

a Spring MVC RestController class;

an AngularJS router, controller and service; -src\main\webapp\app\entities\ 目录下

a HTML page.-HTML文件

 

导入.jh文件命令:

yo jhipster:import-jdl my_file1.jh my_file2.jh

jhipster-uml my_file1.jh my_file2.jh

 

*导入多个文件用空格隔开,需要把对应文件放在项目的根目录,不然会报错,说在根目录找不到对应jh文件。

JDL实体示例:

entity <entity name> {

  <field name> <type> [<validation>*]

}

  • <entity name> 实体名称
  • <field name> 字段名,建议使用驼峰命名,使用下划线后面会出现问题
  • <type> 字段类型(需要jHipster支持的类型
  • <validation> 字段的验证(是否为空,长度限制,正则等)

例子:

entity A

entity B

entity C {}

entity D {

  name String required,

  address String required maxlength(100),

  age Integer required min(18)

}

 说明:A BC实体不包含任何字段,对于空实体这两种定义方式都可以。

D实体包含:

名称为name,类型为string,不为空的字段。

名称为address,类型为string,不为空的字段且字符串最大长度为100的字段。

名称为age,类型为integer,不为空的字段且最小值为18的字段。

*如果需要验证,那么就在验证括号内加内容。

* required: 是否为空

 minlength(10):字符串的最小长度

 maxlength(100):字符串的最大长度

 pattern(*?[a-z]):正则

 min(10):数值的最小值

 max(100):数值的最大值

  minbytes(512):BLOB的最小字节

  maxbytes(1024): BLOB的最大字节

 *JHipster会自动添加ID字段。

 

下面是JDL支持的各种数据库对应的数据类型,JDL网站上面有给出。
SQL MongoDB Cassandra Validations
String String String required, minlength, maxlength, pattern
Integer Integer Integer required, min, max
Long Long Long required, min, max
BigDecimal BigDecimal BigDecimal required, min, max
Float Float Float required, min, max
Double Double Double required, min, max
Enum Enum   required
Boolean Boolean Boolean required
LocalDate LocalDate   required
    Date required
ZonedDateTime ZonedDateTime   required
    UUID required
Blob Blob   required, minbytes, maxbytes
AnyBlob AnyBlob   required, minbytes, maxbytes
ImageBlob ImageBlob   required, minbytes, maxbytes
TextBlob TextBlob   required, minbytes, maxbytes 

 

关系示例:

relationship (OneToMany | ManyToOne | OneToOne | ManyToMany) {
  <from entity>[{<relationship name>}] to <to entity>[{<relationship name>}]
}

·    (OneToMany | ManyToOne| OneToOne | ManyToMany) 关系类型

·   <from entity> 关系拥有者的实体名

·   <to entity> 目标关系的实体名

· <relationship name> 关联另一方的那个字段

*同时可以在一个关系类型里面添加多个关系

entity A
entity B
entity C
entity D
 
relationship OneToOne {
  A{b} to B{a},
  B{c} to C
}
relationship ManyToMany {
  A{d} to D{a},
  C{d} to D{c}
}

*默认会关联ID字段。如果需要关联其他字段,那么在实体后的括号内加,如下:

entity A {
  name String required
}
entity B
relationship OneToOne {
  A{b} to B{a(name)}
}

枚举类型定义如下:

enum Language {
    FRENCH, ENGLISH, SPANISH
  }

在另外一个实体中引用如下:

  entity Book {
    title String required,
    description String,
    language Language
  }

BLOB(byte[]):

可以存放图片或者其他二进制类型的文件。

  • AnyBlob 或者就叫Blob 存放二进制文件的字段;
  • ImageBlob 意味着存放图片的字段.
  • TextBlob 存放长文本的字段.

各种关系的前台和数据库的体现如下:

例子:

relationship ManyToMany {

 Job{task(title)} to Task{job}

}

意思是:用Task实体的title做关联外键。

JOB前台表示如下,显示的是task的title.实体中查看详细可以直接连接到对应的Task:

 

JOB数据库表现如下,并没有task_title:


 

其他可选的操作:

entity A {
  name String required
}
entity B {}
entity C {}
dto A, B with mapstruct
paginate A, C with infinite-scroll
paginate B with pager
service A with serviceClass
service C with serviceImpl

目前我只知道分页的方式其他不懂。

分页的表现如下:

分页方式:

 

 1.NO:对应如下,有多少数据就显示多少:

2. Simple pager:

 

Pagination links


 

 

infinite-scroll:
类似淘宝商品那样,触发到底部就加载接下来的数据。


 
  • 大小: 33.9 KB
  • 大小: 10.6 KB
  • 大小: 17.3 KB
  • 大小: 5.7 KB
  • 大小: 32.8 KB
  • 大小: 22.1 KB
  • 大小: 24.2 KB
分享到:
评论

相关推荐

    JHipster jdl-studio 离线版

    **JHipster与JDL-Studio离线版详解** JHipster是一款强大的全栈开发工具,它基于Spring Boot和Angular(或React),旨在快速构建高效、可扩展的微服务架构和前端应用。JHipster提供了代码生成器,可以自动生成包括...

    jhipster jdl 语法图

    JHipster JDL (Java Hipster Domain Language) 是一种强大的工具,用于定义和管理JHipster应用程序的领域模型。它是JHipster项目的核心部分,允许开发者以声明式的方式定义实体、关系、微服务和其他配置。在...

    sql-to-jdl:将SQL数据库转换为jHipster的JDL格式的工具(创建是由于要使用jHipster生成现有数据库并构建angular-java web)

    将SQL数据库转换为jHipster的JDL格式的工具(由于要使用jHipster生成现有数据库并构建angular-java web而创建) 兼容性 此实现适用于mysql 5.7+和mysql 8+。 只需要很少的更改就可以与oracle db,POSTGRES等一起...

    jdl-samples:样本JDL文件

    JHipster的样本JDL文件该存储库展示了从JDL Studio生成的JDL模式文件。 如果您想添加一个特定的问题,请添加您自己的问题或创建一个问题。 运行jhipster jdl myfile.jdl filename.jdl只要传递此jhipster jdl myfile....

    jdl-studio:JDL Studio是在线JHipster域语言可视化编辑器

    受到大力启发和改编这些很棒的项目使JDL-Studio成为可能Docker镜像官方Docker映像位于 您可以通过以下方式离线使用JDL-Studio: docker run --rm -it -p 18080:80 jhipster/jdl-studioJDL-Studio应该在以下位置可用...

    jhipster-core:JHipster域语言,由JHipster UML和JDL-Studio用于生成实体

    欢迎使用JHipster及其项目通用的官方仓库,例如JDL(JHipster域语言)。 提交问题之前,请阅读我们的。 如果您的问题是错误,请使用预先填充的错误模板。 对于功能请求和查询,可以使用。 贡献给JHipster-Core ...

    JDL-2388RGB-8-32X16-REV-A0-HUB75.rar_A0_JDL_JDL-1988RGB_JDL-41_s

    JDL-1988RGB-16*16-HUB41制版说明: 1.FR-4,TOP层绿油白字,BOT层绿油白字,喷锡。 2.所有的过孔必须阻焊处理。 3.参数:最小间距: 0.254mm 最小孔径: 0.5mm 最小线径: 0.3mm 板 层: 双面板 板 厚: 1.6mm ...

    空时自适应处理.rar_3dt_JDL算法_空时3-dt处理_空时JDL算法_降维算法STAP

    仿真空时自适应处理STAP里的算法合集程序:Capon谱、降维算法3dt、JDL等

    JDL-core:JDL 的中央网站

    JDL 是一种强大的建模语言,主要用于定义应用程序的数据模型、业务逻辑和关系,尤其在开发基于 JHipster 的项目时非常有用。JHipster 是一个开源的 Yeoman 生成器,用于快速构建高质量的微服务架构应用。 **JDL ...

    JDL公司实施ERP管理信息系统体会

    JDL公司从筹划到实施ERP系统,经过了总体规划分布实施、专项机构、教育与培训、原型测试、数据准备、模拟运行、切换七个步骤。项目包含财务、分销、生产、人力资源、决策支持、质量管理等内。每一部分中又包含很多...

    jhipster-monolith-dinosaurs:一个基本的JHipster生成的整体应用程序可对您的恐龙进行分类

    该设置已合并到一个,您现在可以使用以下命令来重现生成(减去自定义): mkdir jhipster-monolith-dinosaurscd jhipster-monolith-dinosaursjhipster import-jdl jhipster-monolith-dinosaurs.jdl部署已针对该版本...

    jhipster-uml:对JHipster的UML支持

    欢迎使用JHipster UML! 请注意,该项目已弃用,不应再使用。 相反,我们建议您使用此项目的JDL导出功能将XMI文件导出到可以使用的JDL文件,并使用JDL Studio建立实体模型。 要了解有关JDL的更多信息,请。 提交...

    jhipster-ide:JHipster域语言的IDE

    具有JDL编辑器和Shell集成的JHipster IDE,可以直接从IDE调用JHipster生成器,以及现代IDE编辑器所期望的一切(语法着色,验证,格式化,重构,查找引用等)。 Xdocker-在JHipster IDE中管理Docker映像和容器。 ...

    generator-jhipster-react:已弃用:功能已移至主生成器

    迁移帐户模块迁移管理模块不正确地支持i18n 支持no-sass选项添加实体子生成器添加import-jdl子生成器迁移量角器测试添加发电机测试添加生成器travis构建首先,安装和 ,然后使用安装generator-jhipster-react(我们...

    Verilog HDL 实现 JDL12864A 图形液晶显示接口

    Verilog HDL 实现 JDL12864A 图形液晶显示接口

    iPF8310S_V0104.jdl

    iPF8310S_V0104.jdl

    ignite-jhipster:针对JHipster应用程序的React Native样板

    点燃JHipster 适用于应用程序的React Native样板,包括身份验证,实体生成器,JDL支持,端到端测试等。 查看或的。文件JHipster集成React本机集成-开发UI组件自动构建和发布您的移动应用移动应用程序的端到端测试和...

    吴忠仪表-JDL微机型电动执行机构产品手册.pdf

    吴忠仪表-JDL微机型电动执行机构产品手册pdf,吴忠仪表-JDL微机型电动执行机构产品手册

    linux-jdl.7z

    标题“linux-jdl.7z”暗示我们正在处理一个压缩文件,其中可能包含了与Linux操作系统相关的软件开发工具,特别是Java Development Kit (JDK)。描述中的“Linux-jdk-1.8u191-x64.tar.gz”进一步证实了这一点,表明这...

    计算机科学反思录-JDL联合试验室.pdf

    计算机科学反思录-JDL联合试验室.pdf 本篇文章讨论了计算机科学的反思录,作者通过自己的学习和思考,探讨了计算机科学的本质、计算机科学与技术的关系、数学在计算机科学中的作用等问题。 首先,作者认为计算机...

Global site tag (gtag.js) - Google Analytics