gpt4 book ai didi

java - 如何使用循环引用 hibernate 注解

转载 作者:行者123 更新时间:2023-11-30 10:38:12 24 4
gpt4 key购买 nike

我有两个循环引用的表

-----------------|                   |------------------
product | | product_detail
-----------------| |------------------
product_id <pk> | | detail_id <pk>
... | <-----------------| container_id <fk>
| <-----------------| product_id <fk>
| | ...

我想知道如何做属性注解

How to do @OneToMany annotation

Class Product
@OneToMany ???
public List<Detail> getDetails();

How to do @ManyToOne annotations

Class Detail

@ManyToOne ???
public Product getContainer();

@ManyToOne ???
public Product getProduct();

我想使用下面的代码:

    Product p1 = new Product(name2);
Product p2 = new Product(name1);

Detail d = new Detail();

d.setProduct(p2);

p1.getDetails().add(d);

...

Session.save(p1);

然后 hibernate insert into productinsert into detail

我找不到创建注释以使其工作的方法。你能帮帮我吗?

最佳答案

在您的情况下,您的代码应如下所示:

Class Product
@OneToMany(mappedBy = "product")
public List<Detail> getDetails();

对于 Detail 类,您应该能够按原样使用 @ManyToOne 注释。所以:

Class Detail
@ManyToOne
public Product getContainer();

@ManyToOne
public Product getProduct();

这背后的原因是,在您的@OneToMany 中,您在 mappedBy 参数中注意到 Detail 类中的哪个字段引用了此产品。只要您遵守标准命名约定,就不需要在@ManyToOne 注释中添加任何额外信息。

关于java - 如何使用循环引用 hibernate 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39830348/

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