java - 如何在没有 getter 的情况下获取附加到实体的实体列表?

标签 java hibernate entity spring-data

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

狗和狗窝之间存在多对一关系,即一个狗窝可以有很多只狗,但一只狗只能有一个狗窝。

KENNEL_ID 是 DOG 表中的外键

问题是狗舍没有附加狗列表,所以我不能做一些简单的事情:

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

}

最佳答案

有两种方法:

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

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

(mappedBy="*",*代表Dog类中@ManyToOne的属性名称)。

2 - 如果您不想执行上述操作,那么您别无选择,只能使用 DAO/存储库层从数据库中检索狗舍的狗列表。

关于java - 如何在没有 getter 的情况下获取附加到实体的实体列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946747/

相关文章:

java - 事务注释不同的行为

c++ - 是否可以使用继承在 C++ 中实现 ECS?

java - 将实体实例从服务器传输到客户端很困难

java - 从 xml 模式创建 java 类

java - Android 运行时错误,ActivityNotFoundException : No Activity

java - 错误: Type mismatch: cannot convert from ArrayList<Subchild> to ArrayList<String>

java - 处理数学公式

java - Hibernate - 集合的一对多映射 - 注解

java - 具有一对多关联的 Hibernate 条件

java - 使用 JPA 在 GAE 中保存许多实体