生如夏花帅 2021-06-02 15:09 采纳率: 33.3%
浏览 11

Java根据不同的页面设计,动态设计表的思路,页面上可以动态创建表的字段属性

       现在有业务需求,需要由页面上动态创建表单属性。比如,页面上创建用户模块,页面上可以手动添加用户名,字段类型,是否必填,是否需要字段验证等情况。

       目前想的是 创建一个表,动态添加字段,但是设计到字段的属性(必填,显示等)需要存储到另外一张表。现在没有一些好的方法和思路对于这种设计,想问下大家有没有好的思路。

        看过泛微的协同办公,他们就是动态创建表和字段,但是看不到人家的表结构设计,自己很想做个这样的设计,如果大家有思路或者有想法,可以和我一起做个开源东西出来呢

  • 写回答

1条回答 默认 最新

  • 关注

    代码生成器,

    @org.hibernate.annotations.Table注解可以自动创建表,像下面这样,
    package com.snowball.base.entity;
    import com.baomidou.mybatisplus.annotation.TableName;
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Builder;
    import lombok.Data;
    import lombok.EqualsAndHashCode;
    import lombok.NoArgsConstructor;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Table;
    import javax.validation.constraints.Email;
     
    @Data
    @NoArgsConstructor
    @Entity
    @Table(name = "user")
    @TableName("user")
    @org.hibernate.annotations.Table(appliesTo = "user",comment = "用户表")
    @EqualsAndHashCode(callSuper = true)
    @ApiModel(value = "用户表")
    public class User extends BaseEntity{
        private static final long serialVersionUID = 1L;
        @ApiModelProperty("姓名")
        @Column(columnDefinition = "varchar(50) comment'姓名'")
        private String realName;
    }

    设计到字段的属性(必填,显示等)需要存储可以存json格式

    {

        name:"realname", // 变量名

        type:"String", // 类型

       isAnnotations:"true",是否验证

        annotations:"NotNull",// 这个验证比较复杂,需要详细设计,有@Email,@NotNull@NotBlank@NotEmpty等等

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line