当前位置: 首页 > 知识库问答 >
问题:

带透视表的高级JPA

吴伟志
2023-03-14
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 100)
@Column(name = "name")
private String name;
@Size(max = 50)
@Column(name = "code")
private String code;
@Size(max = 255)
@Column(name = "brief")
private String brief;
@Size(max = 8)
@Column(name = "status")
private String status;
@Basic(optional = false)
@NotNull
@Column(name = "date_created")
@Temporal(TemporalType.TIMESTAMP)
private Date dateCreated;
@Column(name = "date_updated")
@Temporal(TemporalType.TIMESTAMP)
private Date dateUpdated;

@JoinColumn(name = "created_by", referencedColumnName = "id")
@ManyToOne
private User createdBy;
@JoinColumn(name = "updated_by", referencedColumnName = "id")
@ManyToOne
private User updatedBy;

@ManyToOne
@JoinTable(name = "permission_role",
        joinColumns = @JoinColumn(name = "userid",
                referencedColumnName = "userid"),
        inverseJoinColumns = @JoinColumn(name = "groupid",
                referencedColumnName = "groupid")
)
private Collection<PermissionRole> permissionRoles;

public Roles() {
}

public Roles(Integer id) {
    this.id = id;
}

public Roles(Integer id, Date dateCreated) {
    this.id = id;
    this.dateCreated = dateCreated;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

public String getBrief() {
    return brief;
}

public void setBrief(String brief) {
    this.brief = brief;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public Date getDateCreated() {
    return dateCreated;
}

public void setDateCreated(Date dateCreated) {
    this.dateCreated = dateCreated;
}

public Date getDateUpdated() {
    return dateUpdated;
}

public void setDateUpdated(Date dateUpdated) {
    this.dateUpdated = dateUpdated;
}


public User getCreatedBy() {
    return createdBy;
}

public void setCreatedBy(User createdBy) {
    this.createdBy = createdBy;
}

public User getUpdatedBy() {
    return updatedBy;
}

public void setUpdatedBy(User updatedBy) {
    this.updatedBy = updatedBy;
}


@Override
public int hashCode() {
    int hash = 0;
    hash += (id != null ? id.hashCode() : 0);
    return hash;
}

@Override
public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Roles)) {
        return false;
    }
    Roles other = (Roles) object;
    return !((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)));
}

@Override
public String toString() {
    return "myproperty.v1.db._entities.Roles[ id=" + id + " ]";
}

共有1个答案

濮阳国兴
2023-03-14

我想您希望在用户和角色之间以及角色和特权之间有很多对很多的关系。如果您将声明一个@ManyTomany注释,hibernate将知道创建一个中间表...

检查这个

您还可以通过编程方式创建“inner”表,并从用户到inner对@OneTomany进行注释,从角色到inner对@OneTomany进行注释,特权也是如此

 类似资料:
  • 问题内容: 我正在尝试从三个表生成数据透视图: 学生 费用 stud_fee(关系表) 表格: 我想把费用作为专栏,学生作为行。我想使其显示为: 问题答案: 看起来您想转换成几列的费用可能未知,如果是这种情况,那么您将需要使用准备好的语句来查询以下内容: 参见带有演示的SQL Fiddle

  • 我试图创建一个关系,通过一个名为年级的模型访问一个名为注释的表,通过年级中的学生加载 年级模型和学生模型都属于其他模型 根据我的理解,不可能访问需要透视表的hasManyThrough关系(注释没有年级标识符,只有学生标识符) 我为Laravel 4@HasManyThrough找到了这些函数,它们具有一对多关系,但它给了我一个错误类“App\illumb\Database\Eloquent\Re

  • A 数据透视表介绍 B.1 什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键数据的决策。 数据透视表是针对以下用途特别设计的:以友好的方式,查看大量的数据

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对齐方式。 数据 字体 设置字段名

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水