FridgeProductAsso.java
package ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonIncludeProperties;
import jakarta.persistence.*;
import lombok.*;
import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
import java.sql.Date;
/**
* FridgeProductAsso is an entity class representing a fridge product association.
*
* @author Birk, Pedro
* @version 1.1
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity(name = "fridge_product")
@Builder
public class FridgeProductAsso {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "fridge_product_id")
private long id;
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinColumn(name = "fridge_id")
@JsonIgnore
private Fridge fridgeId;
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinColumn(name = "ean")
@JsonIncludeProperties({"HibernateLazyInitializer", "handler", "ean", "name", "description", "category",
"url", "allergies", "bestBefore", "expirationDate", "unit", "amount"})
private Product ean;
@Column(name = "purchase_date")
private Date purchaseDate;
@Column(name = "days_to_expiration")
private int daysToExpiration;
@Column(name = "amount")
private double amount;
@Column(name = "buy_price")
private double buyPrice;
}