Spring Hibernate не правильно селектит

У меня есть метод

@GetMapping("/current")  
public List<OrderDTO> getOrders(@AuthenticationPrincipal UserDetails userDetails){
    User user = userService.findByEmail(userDetails.getUsername());
    List<Order> orderList = orderService.getAllOrdersByUser(user);


    return orderList.stream().map(OrderMapperIn.MAPPER::convertToDTO).collect(Collectors.toList());
}

Модель Order:

@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "orders")
public class Order {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int id;

    @Column(name = "created_at")
    private Date createdAt;

    @Column(name = "total_amount")
    private BigDecimal totalAmount;

    @Column(name = "address")
    private String address;

    @ManyToOne
    @JoinColumn(name = "user_id", referencedColumnName = "user_id")
    private User owner;

    @OneToMany(mappedBy = "product",cascade = CascadeType.ALL)
    private List<OrderDetails> orderDetails;
}

Модель OrderDetails:

@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "order_details")
public class OrderDetails {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_detail_id")
    private int id;

    @Column(name = "quantity")
    private int quantity;

    @Column(name = "price")
    private BigDecimal price;

    @ManyToOne
    @JoinColumn(name = "order_id", referencedColumnName = "order_id")
    private Order order;

    @ManyToOne
    @JoinColumn(name = "product_id", referencedColumnName = "product_id")
    private Product product;

    public OrderDetails(int quantity, BigDecimal price, Order order, Product product) {
        this.quantity = quantity;
        this.price = price;
        this.order = order;
        this.product = product;
    }
}

Метод должен возвращать все заказы аутентифицированного пользователя. Я создал заказ Order с 2-мя OrderDetails,но orderList в дебаге видит только 1 orderDetails. В БД также 2 записи OrderDetails с одинаковыми order_id. Пробовал также делать feetch List EAGER вместо LAZY, также пробовал инициализировать явно через Hibernate.initialize(), также видело только один orderDetails.


Ответы (1 шт):

Автор решения: Starkvell

Проблема была в mappedBy = "product" поля orderDetails. Как же долго я искал ошибку, а дело было вон в чем.

→ Ссылка