目标:
我正在构建一个有概述的网络应用程序。 在本概述中,我从后端加载分类广告。 每个分类只有一个缩略图。
首先,概述加载分类,然后尝试使用分类的 ID 在相关 Spring Data JPA 存储库中查找关联的缩略图。
当前状态: 分类表看起来不错。缩略图表缺少对分类的引用。
期望的状态: 我希望缩略图表包含对分类 ID 的引用,以便我可以查询分类的缩略图。
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;
为列命名
关于java - 如何使用 Hibernate 和 Spring Data JPA 正确注释两个实体之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59552739/