gpt4 book ai didi

java - JoinColumn Hibernate/API

转载 作者:行者123 更新时间:2023-12-01 18:26:44 27 4
gpt4 key购买 nike

我遇到以下问题:我想简单地加入表“市场”(主)和“电话”,但在使用注释执行此操作时遇到一些问题。

我只是想使用 Comercio.id 作为 Telefone.fk_id 中相应的外键,但它无法识别它。我还想问是否需要为这两个类创建一个存储库接口(interface)。

编辑。另外,对于这样的示例,POST 请求会是什么样子?

Comercio.java

@Entity
@Table(name = "comercio")
public class Comercio {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String cnpj;
private String endereco;

@OneToMany(targetEntity = Telefone.class , mappedBy = "comercio", fetch = FetchType.LAZY)
private List<Telefone> telefones;
private String email;

电话.java

@Entity
@Table(name = "telefone")
public class Telefone {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long telefone_id;

@ManyToOne
@JoinColumn(name="fk_id", referencedColumnName = "id")
private Comercio comercio;
private String telefone;

我得到的答案:

{
"nome" : "Americanas",
"cnpj" : "000",
"endereco" : "SQN 112",
"telefones" : [ ],
"email" : "contato@americanas.com",
"comercio_id" : 1
}

控制台:

Hibernate: select comercio0_.id as id1_0_, comercio0_.cnpj as cnpj2_0_, comercio0_.email as email3_0_, comercio0_.endereco as endereco4_0_, comercio0_.nome as nome5_0_ from comercio comercio0_
Hibernate: select telefones0_.fk_id as fk_id3_1_0_, telefones0_.telefone_id as telefone1_1_0_, telefones0_.telefone_id as telefone1_1_1_, telefones0_.fk_id as fk_id3_1_1_, telefones0_.telefone as telefone2_1_1_ from telefone telefones0_ where telefones0_.fk_id=**?**

感谢任何帮助。

最佳答案

我建议电话本身并不是一个实体:您永远不会想要查询电话,它仅作为 Comercio 的一部分存在。

它可能是一个Embeddable而不是一个实体,但是因为它只有一个属性 - 数字 - 那么您可以简化为下面的内容并将其映射为字符串集合。这样就不需要 Telefone 类。

@Entity
@Table(name = "comercio")
public class Comercio {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String cnpj;
private String endereco;

@ELementCollection
@CollectionTable(name = "comercio_telefone",
joinColumns=@JoinColumn(name="comercio_id"))
private List<String> telefones;

private String email;
}

关于java - JoinColumn Hibernate/API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60217911/

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