Search code examples
javaspring-boothibernatespring-data-jpathymeleaf

How i get value category and categories product in another class with using @ManyToMany


I have 3 class.

Product Class

package com.eziz.warehouse;

import com.eziz.clients.Clients;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;

@Entity
@Table(name = "product")
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long productId;

    @Column(nullable = false, length = 20)
    private String productName;

    @ManyToOne
    @JoinColumn(name = "category_id")
    private ProductCategory productCategory;

    @Column(nullable = false, length = 10)
    private int productCount;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Column(nullable = false)
    private String productDateCreated;

    @Column(nullable = false)
    private double productPurchasePrice;

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public int getProductCount() {
        return productCount;
    }

    public void setProductCount(int productCount) {
        this.productCount = productCount;
    }

    public String getProductDateCreated() {
        return productDateCreated;
    }

    public void setProductDateCreated(String productDateCreated) {
        this.productDateCreated = productDateCreated;
    }

    public double getProductPurchasePrice() {
        return productPurchasePrice;
    }

    public void setProductPurchasePrice(double productPurchasePrice) {
        this.productPurchasePrice = productPurchasePrice;
    }

    public ProductCategory getProductCategory() {
        return productCategory;
    }

    public void setProductCategory(ProductCategory productCategory) {
        this.productCategory = productCategory;
    }

    @Override
    public String toString() {
        return this.productName;
    }
}

ProductCategory Class.

package com.eziz.warehouse;

import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name = "productcategory")
public class ProductCategory {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long productCategoryId;


    @Column(nullable = false, length = 30)
    private String productCategoryName;

//    @ManyToOne
//    @JoinColumn(name = "productCategory")
//    private Product product;

    @OneToMany(mappedBy = "productCategory")
    private Set<Product> products = new HashSet<>();

    public Long getProductCategoryId() {
        return productCategoryId;
    }

    public void setProductCategoryId(Long productCategoryId) {
        this.productCategoryId = productCategoryId;
    }

    public String getProductCategoryName() {
        return productCategoryName;
    }

    public void setProductCategoryName(String productCategoryName) {
        this.productCategoryName = productCategoryName;
    }

//    public Product getProduct() {
//        return product;
//    }
//
//    public void setProduct(Product product) {
//        this.product = product;
//    }


    public Set<Product> getProducts() {
        return products;
    }

    public void setProducts(Set<Product> products) {
        this.products = products;
    }
}

and Request Class.

package com.eziz.requestForWarehouse;


import com.eziz.requests.Requests;
import com.eziz.user.User;
import com.eziz.warehouse.Product;
import com.eziz.warehouse.ProductCategory;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name = "requestWH")
public class RequestWarehouse {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long requestWHId;

    @Column(nullable = false, length = 10)
    private int requestWHCount;

    @Column(nullable = false, length = 15)
    private String requestWHStatus;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Column(nullable = false)
    private String requestWHDateCreated;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Column(nullable = false)
    private String requestWHExpiryTime;

    @ManyToMany
    @JoinColumn(name = "requestWHProductId")
    private Set<ProductCategory> productCategory = new HashSet<>();

    @ManyToOne
    @JoinColumn(name = "requestWHRequestId")
    private Requests requests;

    public Long getRequestWHId() {
        return requestWHId;
    }

    public void setRequestWHId(Long requestWHId) {
        this.requestWHId = requestWHId;
    }

    public int getRequestWHCount() {
        return requestWHCount;
    }

    public void setRequestWHCount(int requestWHCount) {
        this.requestWHCount = requestWHCount;
    }

    public String getRequestWHStatus() {
        return requestWHStatus;
    }

    public void setRequestWHStatus(String requestWHStatus) {
        this.requestWHStatus = requestWHStatus;
    }

    public String getRequestWHDateCreated() {
        return requestWHDateCreated;
    }

    public void setRequestWHDateCreated(String requestWHDateCreated) {
        this.requestWHDateCreated = requestWHDateCreated;
    }

    public String getRequestWHExpiryTime() {
        return requestWHExpiryTime;
    }

    public void setRequestWHExpiryTime(String requestWHExpiryTime) {
        this.requestWHExpiryTime = requestWHExpiryTime;
    }

//    public ProductCategory getProductCategory() {
//        return productCategory;
//    }
//
//    public void setProductCategory(ProductCategory productCategory) {
//        this.productCategory = productCategory;
//    }


    public Set<ProductCategory> getProductCategory() {
        return productCategory;
    }

    public void setProductCategory(Set<ProductCategory> productCategory) {
        this.productCategory = productCategory;
    }

    public Requests getRequests() {
        return requests;
    }

    public void setRequests(Requests requests) {
        this.requests = requests;
    }
}

I need use this in request, first select category and after categoryproducts with select option.

html code:

          <div class="form-group">
                    <p align="center" class="font-aziz">Avadanlıq / Detal Kateqoriya</p>
                    <select th:field="*{productCategory}" class="form-control un" id="product" required>
                        <th:block th:each="pro : ${productCategoryList}">
                            <option th:text="${pro.productCategoryName}"
                                    th:value="${pro.productCategoryId}"/>
                        </th:block>
                    </select>
                </div>

<!--                <div class="form-group">-->
<!--                    <p align="center" class="font-aziz">Avadanlıq / Detal</p>-->
<!--                    <select th:field="*{productCategory}" class="form-control un" id="product1" required>-->
<!--                        <th:block th:each="pro : ${productCategoryList.products}">-->
<!--                            <option th:text="${pro.productName}"-->
<!--                                    th:value="${productCategory}"/>-->
<!--                        </th:block>-->
<!--                    </select>-->
<!--                </div>-->

and so how i fix this? i am need get products. but using category. I need use this in request, first select category and after categoryproducts with select option.


Solution

  •                 <div class="form-group">
                        <p align="center" class="font-aziz">Avadanlıq / Detal</p>
                        <select th:field="*{productCategory}" class="form-control un" id="product1" required>
                                              <span th:each="pro : ${productCategoryList}">
                                                  <th:block th:each="pro1 : ${pro.products}">
                                <option th:text="${pro1.productName}"
                                        th:value="${requestWH.productCategory}"/>
                            </th:block>
                      </span>
                        </select>
                    </div>
    

    this worked, but i dont get all .