EL1008E: Свойство или поле 'isAvailable' не может быть найдено в объекте типа 'com.inventory.domain.Item' - может быть, не является общедоступным или недействительным? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть одно логическое поле в элементе bean, все остальные поля заполняются, но только isAvailable не заполняется в пользовательском интерфейсе с использованием тимелина. Я получаю сообщение об ошибке, как property can't not found Я не получаю основную причину. поле в тимелист. потому что в .html-странице, когда я пытался прочитать логическое значение st.isAvailable, его ошибка броска в свойстве бэкэнда не найдена, следовательно, не заполняется значение

Item Bean

package com.inventory.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;

@Entity
@Table(name = "item")
public class Item {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int item_id;

    @ManyToOne
    @JoinColumn(name = "category_id")
    private Category categoryId;

    @Column(name = "item_name",unique = true)
    private String itemName;

    @Column(name = "current_stock_quantity")
    private double currentStockQuantity;

    public double getCurrentStockQuantity() {
        return currentStockQuantity;
    }

    @Column(name = "unit")
    @Enumerated(EnumType.STRING)
    private ItemWeightUnit unit;

    @Column(name = "current_purchase_price")
    private double currentPurchasePrice;

    @Column(name = "is_available")
    private boolean isAvailable;

    @Column(name = "is_active")
    private boolean isActive;

    @Column(name = "item_description")
    @Lob
    private String itemDescription;

    @OneToMany(mappedBy = "item",cascade = CascadeType.ALL)
    private List<Vendor> vendor = new ArrayList<Vendor>();

    @OneToMany(mappedBy = "item",cascade = CascadeType.ALL)
    @OrderBy("transaction_date ASC")
    private SortedSet<ItemTransaction> itemTransaction=new TreeSet<ItemTransaction>();

    @OneToMany(mappedBy = "item",cascade = CascadeType.ALL)
    @OrderBy("date ASC")
    private SortedSet<PricingHistory> priceHistory=new TreeSet<PricingHistory>();

    public SortedSet<ItemTransaction> getItemTransaction() {
        return itemTransaction;
    }

    public void setItemTransaction(SortedSet<ItemTransaction> itemTransaction) {
        this.itemTransaction = itemTransaction;
    }

    public void setCurrentStockQuantity(double currentStockQuantity) {
        this.currentStockQuantity = currentStockQuantity;
    }

    public List<Vendor> getVendor() {
        return vendor;
    }

    public void setVendor(List<Vendor> vendor) {
        this.vendor = vendor;
    }



    public int getItem_id() {
        return item_id;
    }

    public void setItem_id(int item_id) {
        this.item_id = item_id;
    }

    public Category getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Category categoryId) {
        this.categoryId = categoryId;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getItemDescription() {
        return itemDescription;
    }

    public void setItemDescription(String itemDescription) {
        this.itemDescription = itemDescription;
    }

    public boolean isAvailable() {
        return isAvailable;
    }

    public void setAvailable(boolean isAvailable) {
        this.isAvailable = isAvailable;
    }

    public boolean isActive() {
        return isActive;
    }

    public void setActive(boolean isActive) {
        this.isActive = isActive;
    }


    public ItemWeightUnit getUnit() {
        return unit;
    }

    public void setUnit(ItemWeightUnit unit) {
        this.unit = unit;
    }

    public double getCurrentPurchasePrice() {
        return currentPurchasePrice;
    }

    public void setCurrentPurchasePrice(double currentPurchasePrice) {
        this.currentPurchasePrice = currentPurchasePrice;
    }

    public SortedSet<PricingHistory> getPriceHistory() {
        return priceHistory;
    }

    public void setPriceHistory(SortedSet<PricingHistory> priceHistory) {
        this.priceHistory = priceHistory;
    }

}

                          <tbody>
                                <tr th:each="st,iter : ${items}">
                                    <td th:text="${iter.count}"></td>
                                    <td th:text="${st.itemName}"></td>
                                    <td th:text="${st.currentStockQuantity}"></td>
                                    <td th:text="${st.unit}"></td>
                                    <td th:text="${st.currentPurchasePrice}"></td>

                                    <div th:if="${st.isAvailable} == true">
                                    <td>Yes</td>
                                    </div>
                                    <div th:unless="${st.isAvailable} == false">
                                    <td>No</td>
                                    </div>
                                    <td>
                                        <a href="#" class="btn btn-default" th:href="@{/karyawan/form(id=${st.id})}"
                                           title="Edit Data"><span class="glyphicon glyphicon-edit"></span></a>
                                        <a href="#" class="btn btn-default" th:href="@{/karyawan/delete(id=${st.id})}"
                                           title="Delete Data"><span class="glyphicon glyphicon-trash"></span></a>
                                    </td>
                                </tr>
                                <tr th:if="${#lists.isEmpty(items.content)}">
                                    <td colspan="13" class="text-center">Data Not Found</td>
                                </tr>
                             </tbody>

1 Ответ

0 голосов
/ 30 октября 2019

Getter и Setter для isAvailable метод неверен, при десериализации и сериализации необходимо их обновить.

public boolean getIsAvailable() {
    return isAvailable;
}

public void setIsAvailable(boolean isAvailable) {
    this.isAvailable = isAvailable;
}
...