JDL增强
BegCode在JHipster的基础上,对JDL的注解进行了增强,主要体现在以下几个方面。
4. relationship增加的注解功能
relationship支持注解,但好像不支持多个,同时如果有注释,要注意顺序,一定是注解在上,注释在下。目前看官方解析器好像还是这样的,没有调整。 注解分别作用在from和to两边。
示例如下:
md
/\*_ 权限与角色对应关系 _/
relationship ManyToMany {
@annotationOnSource(importData-editInList-editBySelectDrawer-unidirectional)
/** 菜单列表 */
Authority{viewPermissions(text)}
to
@annotationOnDestination(editInList-editBySelectDrawer)
/** 角色列表 */
ViewPermission{authorities(name)}
@annotationOnSource(editInList-editBySelectDrawer)
/** Api权限列表 */
Authority{apiPermissions(name)}
to
@annotationOnDestination(editInList-editBySelectDrawer)
/** 角色列表 */
ApiPermission{authorities(name)}
@annotationOnSource(importData)
/** 角色列表 */
User{authorities(name)}
to
@annotationOnDestination(editInList-editByTableModal)
/** 用户列表 */
Authority{users(firstName)}
}
4.1 @annotationOnSource注解
该注解写在关系的左侧。其中的配置关键字由-
进行分隔。支持的关键字有:
md
unidirectional: 单向关系
editBySelect: 使用Select组件
editByFormList: 使用FormList组件
editByList: 使用List组件
editByDescList: 使用DescList组件
editByTable: 使用Table进行编辑
countByPrimaryKey: 使用主键统计
relateByIdEntity: 使用Entity名称与Id主键进行关联
editBySelectModal: 使用弹窗进行编辑
editBySelectDrawer: 使用抽屉进行编辑
editByTableModal: 使用弹窗Table列表进行编辑
editByTableDrawer: 使用抽屉进行编辑
importData: 默认导入关联数据
editInForm: 在form中编辑
editInList: 在list中编辑
hideInList: 在list中不显示
简要说明如下:
unidirectional表示单向关系,只有左侧维护。
editByXXX表示使用什么组件进行编辑。
editInList表示可以在列表中直接维护关联关系数据。
上述示例的最终效果如下:
4.2 @annotationOnDestination注解
该注解写在关系的右侧,一般情况下较少使用,主要用来通过右侧查询或维护关联关系。其中的配置关键字由-
进行分隔。
支持的关键字有:editInList-editBySelectModal,后续根据实际情况可能进行调整。
在4.1示例中,第3个关系下,可以通过角色列表页面将某一角色授权给指定的用户。