Entity for the ProductSales Table:
package com.example.model;
import javax.persistence.*;
@Entity
@IdClass(ProductSalesPK.class)
public class ProductSales {
@Column(name = "QUANTITY")
private int quantity_sold;
@Id
@ManyToOne
@JoinColumn(name = "sales_id")
private Sales sales;
@Id
@ManyToOne
@JoinColumn(name = "product_id")
private Product product;
public ProductSales() {
}
public ProductSales(Sales sales, Product product, int quantity_sold) {
this.sales = sales;
this.product = product;
this.quantity_sold = quantity_sold;
}
public Product getProduct() {
return product;
}
public Sales getSales() {
return sales;
}
public void setProduct(Product product) {
this.product = product;
}
public void setSales(Sales sales) {
this.sales = sales;
}
public int getQuantity_sold() {
return quantity_sold;
}
public void setQuantity_sold(int quantity_sold) {
this.quantity_sold = quantity_sold;
}
}
ProductSalesPK Id class:
package com.example.model;
import java.util.Objects;
public class ProductSalesPK {
private int sales;
private String product;
public ProductSalesPK(int sales_id, String product_id) {
this.sales = sales_id;
this.product = product_id;
}
@Override
public int hashCode() {
int hash = 5;
hash = 83 * hash + this.sales;
hash = 83 * hash + Objects.hashCode(this.product);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final ProductSalesPK other = (ProductSalesPK) obj;
if (this.sales != other.sales) {
return false;
}
if (!Objects.equals(this.product, other.product)) {
return false;
}
return true;
}
}
Entity class fpor Product:package com.example.model;
package com.example.model;
import java.util.Objects;
import javax.persistence.*;
import javax.validation.constraints.*;
@Entity
public class Product {
@NotNull(message="product id not null") @Size (min = 1,message="product id not empty")
@Id
private String product_id;
@NotNull(message="product name not null") @Size (min = 10,message="product name length at least 10")
private String prod_name;
@Min(value=5, message="price >= {value}")
private double price;
private String prod_desc;
public Product() {
}
public Product(String id, String name, double price, String description) {
this.product_id = id;
this.prod_name = name;
this.price = price;
this.prod_desc = description;
}
public String getId() {
return product_id;
}
public String getName() {
return prod_name;
}
public void setName(String name) {
this.prod_name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return prod_desc;
}
public void setDescription(String description) {
this.prod_desc = description;
}
@Override
public String toString() {
String s = String.format("Product id: %s\n"
+ "Name: %s\n"
+ "Description: %s\n"
+ "Price: $%.2f", product_id, prod_name, prod_desc, price);
return s;
}
@Override
public int hashCode() {
int hash = 3;
hash = 97 * hash + Objects.hashCode(this.product_id);
hash = 97 * hash + Objects.hashCode(this.prod_name);
hash = 97 * hash + (int) (Double.doubleToLongBits(this.price) ^ (Double.doubleToLongBits(this.price) >>> 32));
hash = 97 * hash + Objects.hashCode(this.prod_desc);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Product other = (Product) obj;
if (!Objects.equals(this.product_id, other.product_id)) {
return false;
}
if (!Objects.equals(this.prod_name, other.prod_name)) {
return false;
}
if (Double.doubleToLongBits(this.price) != Double.doubleToLongBits(other.price)) {
return false;
}
if (!Objects.equals(this.prod_desc, other.prod_desc)) {
return false;
}
return true;
}
}




