Witam, z pewnością to błacha sprawa ale mam taki problem i nie bardzo wiem jak to ugryść pobierając dane z bazy dostaje "order " i wszystkie " orderItem" ale potem jeszcze raz
dostaje dla tego "OrderItem" wszystkie order i tak w kólko i jakby dla jednego zapytania dostaje nieskonczenie wiele linijek a to tylko fragment.
{
"id": 53,
"totalQuantity": 2,
"totalPrice": 40.00,
"status": null,
"dateCreated": "2021-11-11T16:54:58.000+00:00",
"lastUpdated": null,
"orderItems": [
{
"id": 31,
"imageUrl": null,
"unitPrice": 20.00,
"quantity": 2,
"productId": 8,
"order": {
"id": 53,
"totalQuantity": 2,
"totalPrice": 40.00,
"status": null,
"dateCreated": "2021-11-11T16:54:58.000+00:00",
"lastUpdated": null,
"orderItems": [
{
"id": 31,
"imageUrl": null,
"unitPrice": 20.00,
"quantity": 2,
"productId": 8,
"order": {
"id": 53,
"totalQuantity": 2,
"totalPrice": 40.00,
"status": null,
"dateCreated": "2021-11-11T16:54:58.000+00:00",
"lastUpdated": null,
"orderItems": [
@Entity
@Table(name="order_item")
@Getter
@Setter
@Transactional
public class OrderItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private Long id;
@Column(name="image_url")
private String imageUrl;
@Column(name="unit_price")
private BigDecimal unitPrice;
@Column(name="quantity")
private int quantity;
@Column(name="product_id")
private Long productId;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "order_id")
private Order order;
}
i
@Entity
@Table(name="orders")
@Getter
@Setter
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private Long id;
@Column(name="total_quantity")
private int totalQuantity;
@Column(name="total_price")
private BigDecimal totalPrice;
@Column(name="status")
private String status;
@Column(name="date_created")
@CreationTimestamp
private Date dateCreated;
@Column(name="last_updated")
@UpdateTimestamp
private Date lastUpdated;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "order")
private Set<OrderItem> orderItems = new HashSet<>();
@ManyToOne
@JoinColumn(name = "customer_id")
private Customer customer;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "shipping_address_id", referencedColumnName = "id")
private Address shippingAddress;
public void add(OrderItem item) {
if (item != null) {
if (orderItems == null) {
orderItems = new HashSet<>();
}
orderItems.add(item);
item.setOrder(this);
}
}
}
z góry dziekuje za pomoc, pozdrawiam