繁体   English   中英

如何使用 Hibernate & Spring Data JPA 正确注释两个实体之间的这种关系?

[英]How can I properly annotate this relationship between two entities using Hibernate & Spring Data JPA?

目标:

我正在构建一个有概述的网络应用程序。 在本概述中,我从后端加载分类广告。 每个分类都有一个缩略图。

首先,概览加载分类,然后尝试使用分类的 ID 在相关的 Spring Data JPA 存储库中查找关联的缩略图。

当前状态:分类表看起来不错。 缩略图表缺少对分类的引用。

期望状态:我希望 Thumbnail 表包含对分类 ID 的引用,以便我可以查询分类的 Thumbnail。

ERD(~ish):

在此处输入图片说明

实体类:

分类:

import javax.persistence.*;

@Entity
public class Classified {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String summary;
    private String description;

    public Classified() { }

    public Classified(String summary, String description) {
        this.summary = summary;
        this.description = description;
    }

    public long getId() {
        return id;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

缩略图:

import javax.persistence.*;

@Entity
public class Thumbnail {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @OneToOne
    @JoinColumn(name = "id")
    private Classified classified;

    @Column(name="bytes", columnDefinition="VARBINARY(10000)")
    private byte[] bytes;

    public Thumbnail() {
    }

    public Thumbnail(Classified classified, byte[] bytes) {
        this.classified = classified;
        this.bytes = bytes;
    }
}

表格(以一些样本数据开始):

分类: 在此处输入图片说明

缩略图: 在此处输入图片说明

您应该只更改缩略图类中 JoinColumn 的名称,例如:

@JoinColumn(name = "classifiedId",referencedColumnName = "id")
private Classified classified;

为列命名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM