FridgeProductAsso.java

  1. package ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct;

  2. import com.fasterxml.jackson.annotation.JsonIgnore;
  3. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  4. import com.fasterxml.jackson.annotation.JsonInclude;
  5. import com.fasterxml.jackson.annotation.JsonIncludeProperties;
  6. import jakarta.persistence.*;
  7. import lombok.*;
  8. import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
  9. import ntnu.idatt2016.v233.SmartMat.entity.product.Product;

  10. import java.sql.Date;

  11. /**
  12.  * FridgeProductAsso is an entity class representing a fridge product association.
  13.  *
  14.  * @author Birk, Pedro
  15.  * @version 1.1
  16.  */
  17. @AllArgsConstructor
  18. @NoArgsConstructor
  19. @Data
  20. @Entity(name = "fridge_product")
  21. @Builder
  22. public class FridgeProductAsso {

  23.     @Id
  24.     @GeneratedValue(strategy = GenerationType.IDENTITY)
  25.     @Column(name = "fridge_product_id")
  26.     private long id;

  27.     @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
  28.     @JoinColumn(name = "fridge_id")
  29.     @JsonIgnore
  30.     private Fridge fridgeId;

  31.     @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
  32.     @JoinColumn(name = "ean")
  33.     @JsonIncludeProperties({"HibernateLazyInitializer", "handler", "ean", "name", "description", "category",
  34.             "url", "allergies", "bestBefore", "expirationDate", "unit", "amount"})
  35.     private Product ean;

  36.     @Column(name = "purchase_date")
  37.     private Date purchaseDate;

  38.     @Column(name = "days_to_expiration")
  39.     private int daysToExpiration;

  40.     @Column(name = "amount")
  41.     private double amount;

  42.     @Column(name = "buy_price")
  43.     private double buyPrice;


  44. }