如何通过子ID获取父级的Java Spring Data JPA?

bluesky1年前 ⋅ 137 阅读

ChatGPT的回答仅作参考:

可以通过在实体类中定义一个ManyToOne关系来实现通过子ID获取父级的Java Spring Data JPA。

例如,假设有一个Order实体类和一个Customer实体类,一个订单只能属于一个客户,但一个客户可以有多个订单。在Order实体类中定义一个ManyToOne关系,如下所示:

```
@Entity
public class Order {
    @Id
    private Long id;

    @ManyToOne
    @JoinColumn(name = "customer_id")
    private Customer customer;

    // other fields and methods
}
```

在Customer实体类中定义一个OneToMany关系,如下所示:

```
@Entity
public class Customer {
    @Id
    private Long id;

    @OneToMany(mappedBy = "customer")
    private List<Order> orders;

    // other fields and methods
}
```

然后,可以使用Spring Data JPA的CrudRepository或JpaRepository接口中的方法来查询订单和客户。例如,要通过订单ID获取客户,可以使用以下代码:

```
public Customer findCustomerByOrderId(Long orderId) {
    Order order = orderRepository.findById(orderId).orElse(null);
    if (order != null) {
        return order.getCustomer();
    }
    return null;
}
```

这将返回与给定订单ID关联的客户。

全部评论: 0

    相关推荐