跳至主要內容

引用字段

Mr.Hope大约 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;

注意事项

  • 在点表达式中,尽量将最后一级字段设计得更加精确,以便对应的集合体数量尽量较小。