一对一
一对一关系表示两个实体之间存在一对一的关联
@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
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;
}
更多代码请参见以下源码获取 源码获取