我正在尝试获取与一个狗窝实体相关的Dogs实体的列表。

狗和狗窝之间有many to one关系,即狗窝可以养多只狗,但狗只能养一只狗窝。

KENNEL_ID是DOG表中的foreign key

问题是狗窝没有狗列表,所以我不能做以下简单的事情:

List<Dogs> allDogsInOneKennel =    kennel.getAllDogs();


但是对于狗实体,我可以:

dog.getKennel();


有没有一种方法可以让我追踪所有与一个狗窝相关的狗?

狗窝实体:

@Entity
@Table(
    name = "KENNEL"
)
public class Kennel {
    @Id
    private String id;

    @Column(
        location = "LOCATION"
    )
    private String location;


    public Kennel() {
    }

    //getters setters

}

最佳答案

有2种方法:

1-就像在Dog类中声明@ManyToOne一样,您可能要在Kennel类中声明@OneToMany关联:

@OneToMany(mappedBy="kennel", cascade = CascadeType.ALL)
private Set<Dog> dogs = new HashSet<>();


(mappedBy =“ *”,*表示Dog类中@ManyToOne的属性名称)。

2-如果您不想执行上述操作,则除了使用DAO /存储库层从数据库检索狗窝的狗列表之外,别无选择。

09-30 15:09