一对一

一对一关系表示两个实体之间存在一对一的关联

@OneToOne

relatedProperty 关联字段

relatedValue 关联值

没有JoinColumn方不生成字段。

示例代码2:

  @OneToOne(relatedProperty = "type", relatedValue = "0")
  private DYMysql dyMysql;
  
  @OneToOne(relatedProperty = "type", relatedValue = "1")
  private DYOracle dyOracle;

在JoinColumn方生成字段,生成外键。

示例代码1:

  @OneToOne
  @JoinColumn(name = "data_source_id", referencedProperty = "id")
  private DYDataSource dyDataSource;

@JoinColumn

辅助注解,作用于@man2one 和 @one2one

name 字段名

referencedProperty 关联字段默认id

dynamicGroup

columns: [{ …… }]

动态分组dynamicGroup

 {
    "displayName": "type",
    "name": "type",
    "dynamicGroup": {
      "options": [
        {
          "label": "mysql",
          "value": "0",
          "relatedProperty": "dyMysql"
        },
        {
          "label": "oracle",
          "value": "1",
          "relatedProperty": "dyOracle"
        }
      ]
    }
  }

ER注解需要配置custom,display ,hidden

搜索,表单,display: false

 {
    "displayName": "dyMysql",
    "name": "dyMysql",
    "display": false,
    "custom": true
  }

表格,hidden : true

{
"displayName": "dyMysql",
"name": "dyMysql",
"custom": true,
"hidden": true
}

demo工程

DYDataSource

@Model(type = Model.ModelType.Buss, name = "DYDataSource", tableName = "dy_data_source", displayName = "数据源")
public class DYDataSource extends BaseModel<DYDataSource> {
    @Property(columnName = "name")
    private String name;

    @Property(columnName = "type")
    @Selection(values = {@Option(label = "mysql", value = "0"), @Option(label = "oracle", value = "1")})
    private String type;

    @Property(columnName = "url")
    private String url;

    @OneToOne(relatedProperty = "type", relatedValue = "0")
    private DYMysql dyMysql;

    @OneToOne(relatedProperty = "type", relatedValue = "1")
    private DYOracle dyOracle;

    @Property(columnName = "file_name", dataType = DataType.FILE)
    private String fileName;


    @ManyToOne
    @JoinColumn(name = "many2one_id")
    private Many2one many2one;



    @OneToMany
    private List<Ono2Many> ono2ManyList;


    @ManyToMany
    @JoinTable(name = "many2many_id", joinColumns = @JoinColumn(name = "dy_many2many_id"), inverseJoinColumns = @JoinColumn(name = "many2many_id"))
    private List<Many2Many> many2ManyList;

}

源码获取 dynamic-group