Как я могу отобразить JDialog с именами предметов, которые ниже определенного количества?Мне это понадобится в приложении базы данных Java, разработанном с использованием Hibernate 5.4 и Apache Derby в среде IDE NetBeans.Я новичок и буду признателен за любую помощь!
Ниже вы можете увидеть диаграмму сущностей таблиц базы данных:
Нажмите на ссылку, чтобы открыть изображение
Вот JDialog, где элементыниже определенного предела будет отображаться:
Кликнуть ссылку, чтобы открыть изображение
Вот окно, в котором пользователь вводит предел количества:
Ссылка для открытия изображения
Сегмент кода для ввода предела:
public class SetQuantityLimit extends javax.swing.JFrame{
public static int limit
...
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt){
limit = Integer.paerseInt(this.JTextField.getText());
В качестве статической переменной limit должен пережить этот метод и класс, mustnне так ли?Таким образом, когда я вызываю эту переменную в другом классе, который должен отображать сообщение, когда в приложении открывается окно запасов ...
public class LimitMessage extends javax.swing.JDialog
... оно должно иметь свое значение, я прав?Вот что у меня есть:
private void FillData()
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("Name")
List<Items> result = null;
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = null;
Transaction tx = null;
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query = session.createQuery("...");
result = query.list();
tx.commit();
session.close();
//itemModel is an instance of ItemModel() DAO class with methods such as create, update, delete etc., see picture below
for (Items item : this.itemModel.findAll()){
dtm.addRow(new Object[]{...});
this.JTable.setModel(dtm);}
...
Этот метод должен отображать названия элементов ниже предела элементов в JTable.Проблема заключается в том, что количество элементов рассчитывается с помощью столбцов TRANSACTIONS.Flow и ADVICENOTE.In_Or_Out и ассоциаций таблиц, а не сохраняется в базе данных, что может быть проблематично.Я совершенно растерялся, я не уверен, должен ли я здесь снова вычислять количество или я могу использовать вычисления из представления запаса, где количества рассчитываются в любом случае.Может быть, я должен изменить всю структуру базы данных, чтобы сделать ее более разумной ... Любые предложения и помощь с благодарностью!
Items.java
package classes;
public class Items implements java.io.Serializable {
private int itemId;
private String name;
private Integer netPrice;
private Integer vatRate;
private Categories category;
public Items() {
}
public Items(int itemId, String name, Integer netPrice, Integer vatRate, Categories category) {
this.itemId = itemId;
this.name = name;
this.netPrice = netPrice;
this.vatRate = vatRate;
this.category = category;
}
public int getItemId() {
return this.itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getNetPrice() {
return this.netPrice;
}
public void setNetPrice(Integer netPrice) {
this.netPrice = netPrice;
}
public Integer getVatRate() {
return this.vatRate;
}
public void setVatRate(Integer vatRate) {
this.vatRate = vatRate;
}
public Categories getCategory() {
return category;
}
public void setCategory(Categories category) {
this.category = category;
}
}
Items.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="classes.Items" table="ITEMS" schema="APP" optimistic-lock="version">
<id name="itemId" type="int" column="ITEM_ID">
<generator class="native" />
</id>
<property name="name" type="string" column="NAME" length="100"/>
<property name="netPrice" type="java.lang.Integer" column="NET_PRICE"/>
<property name="vatRate" type="java.lang.Integer" column="VAT_RATE"/>
<many-to-one name="category" class="classes.Categories" fetch="select" column="CATEGORY_ID" not-null="true" lazy="false"/>
</class>
</hibernate-mapping>