gpt4 book ai didi

java - 如何使用 Hibernate 和 Spring Data JPA 正确注释两个实体之间的关系?

转载 作者:行者123 更新时间:2023-12-01 19:06:07 25 4
gpt4 key购买 nike

目标:

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

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

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

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

ERD(~ish):

enter image description here

实体类:

分类:

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;
}
}

表格(以一些示例数据开始):

分类: enter image description here

缩略图: enter image description here

最佳答案

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

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

为列命名

关于java - 如何使用 Hibernate 和 Spring Data JPA 正确注释两个实体之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59552739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com