引用字段
大约 1 分钟
引用字段
字段类型
业务类型 | Java类型 | 数据库类型 | 规则说明 |
---|---|---|---|
RELATED | 基本类型或关系类型 | 不存储或varchar、text | 引用字段 |
【数据库规则】:点表达式最后一级对应的字段类型;数据库字段值默认为Java字段的序列化值,默认使用JSON序列化
【前端交互规则】:点表达式最后一级对应的字段控件类型 |
参数属性
@Field.Related(value = {""},related = {""})
value:
- 默认值为空
- 表示引用对象,支持点表达式
[Java 中 Class.Property >>> {"Class","Property"} ]
related:
与上述的value值用法相同
使用示例
基本用法
用法一
- 在Java 中使用注解
@Field.Related("testCreate")
并添加 引用属性
@Field(required = true, displayName = "测试被引用字段")
private String testCreate;
@Field.Related("testCreate")
@Field(displayName = "测试引用字段")
private String testRelated;
在数据库中,上述代码将不会创建对应类型的字段。
用法二
- 在Java 中使用注解
@Field.Related(related = {"testDemo", "name"})
并添加 引用对象中的属性
@Field(displayName = "测试被引用字段")
private TestDemo testDemo;
@Field.Related(related = {"testDemo", "name"})
@Field(displayName = "测试引用字段")
private String testRelated;
在数据库中,上述代码将不会创建对应类型的字段。
更多用法
@Field(displayName = "测试列表")
private List<TestDemo> testDemoLists;
//使用related,从List集合中获取指定值,类似Stream.map(name).Collect(toList)
@Field.String
@Field.Related(related = {"testDemoLists", "name"})
@Field(summary = "测试用例")
private List<String> demoNames;
//------------------------------------------------------------------------------
@Field(displayName = "测试Demo", required = true, invisible = true)
private TestDemo testDemo;
//使用related,从对象中获取某一个属性值
@Field.Related(related = {"testDemo", "demoList"})
@Field(displayName = "测试集合", invisible = true)
private List<Demo> demoLists;
注意事项
- 在点表达式中,尽量将最后一级字段设计得更加精确,以便对应的集合体数量尽量较小。