private void categoryComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
try {
DefaultTableModel dtm = new DefaultTableModel();
String cat = this.categoryComboBox.getSelectedItem().toString();
session=sessionFactory.openSession();
transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(Items.class);
//HERE LIES THE PROBLEM BUT I HAVE NO CLUE HOW TO SOLVE IT
List<Items> itemlist = criteria.add(Restrictions.eq("category", cat).ignoreCase()).list();
transaction.commit();
session.close();
if (dtm.getColumnCount()==0) {
dtm.addColumn("Name");
dtm.addColumn("Category");
dtm.addColumn("Quantity");
dtm.addColumn("Net Price (per unit)");
dtm.addColumn("Gross Pice (per unit)");
dtm.addColumn("Net Price (total)");
dtm.addColumn("Gross Price (total)");
}
Font f = new Font("Georgia", Font.BOLD, 16);
JTableHeader header = itemTable.getTableHeader();
header.setFont(f);
itemTable.setRowHeight(25);
if (getQuantity().isEmpty()) {for (int i = 0; i < itemlist.size(); i++) {
dtm.addRow(new Object[]{itemlist.get(i).getName(), itemlist.get(i).getCategory().getName(),"-",itemlist.get(i).getNetPrice(), Math.round((Double.valueOf(itemlist.get(i).getNetPrice())*(1d+itemlist.get(i).getVatRate()/100d))), "-", "-"});
}
} else {
for (int i = 0; i < itemlist.size(); i++) {
dtm.addRow(new Object[]{itemlist.get(i).getName(), itemlist.get(i).getCategory().getName(), getQuantity().get(itemlist.get(i).getItemId()).getQuantity(), itemlist.get(i).getNetPrice(), itemlist.get(i).getNetPrice()*(itemlist.get(i).getVatRate()+1), getQuantity().get(itemlist.get(i).getItemId()).getQuantity()*itemlist.get(i).getNetPrice(), itemlist.get(i).getNetPrice()*(itemlist.get(i).getVatRate()+1)*getQuantity().get(itemlist.get(i).getItemId()).getQuantity()});
}
}
this.itemTable.setModel(dtm);} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
}
这里还有我的XML映射类:
Caregories.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">
<!-- Generated Feb 9, 2019, 3:57:52 PM by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
<class name="classes.Categories" table="CATEGORIES" schema="APP" optimistic-lock="version">
<id name="categoryId" type="int">
<column name="CATEGORY_ID" />
<generator class="native" />
</id>
<property name="name" type="string">
<column name="NAME" length="100" />
</property>
<set name="items" table="ITEMS" inverse="false" cascade="all" lazy="false" fetch="select">
<key>
<column name="CATEGORY_ID" not-null="true" />
</key>
<one-to-many class="classes.Items" />
</set>
</class>
</hibernate-mapping>
项目。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>
类别。Java语言
package classes;
// Generated Feb 9, 2019, 3:57:50 PM by Hibernate Tools 4.3.1
import java.util.Set;
public class Categories implements java.io.Serializable {
private int categoryId;
private String name;
private Set<Items> items;
public Categories() {
}
public Categories(int categoryId, String name, Set<Items> items) {
this.categoryId = categoryId;
this.name = name;
this.items = items;
}
public int getCategoryId() {
return this.categoryId;
}
public void setCategoryId(int categoryId) {
this.categoryId = categoryId;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Set<Items> getItems() {
return items;
}
public void setItems(Set<Items> items) {
this.items = 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;
}
}
<代码>标准。添加(限制。eq(“类别”,类别)。ignoreCase())这是错误的。不能将关系与字符串进行比较。下面是一个直接来自Hibernate文档的示例:
List<Items> itemlist = sess.createCriteria(Items.class)
.createAlias("category",c)
.add( Restrictions.eq("c.name", cat))
.list();
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html
另一个观察是您使用的是inverse=false。IMO您希望它是inverse=true
问题内容: 尝试从数据库中列出带有简单约束的hibernate条件时出现错误 我有两个类:与关联。这两个类正在扩展,用于管理有关数据版本的信息-(创建和分配,谁和何时)。这两个类具有的重要意义。 执照 健身房 数据模型 的MySQL 例外: 我做错了什么? 问题答案: 尝试使用 也就是说,您将代替放置为第二个参数。
我有一个fxml文件已经注册了控制器。Controller实现EventHandler和方法句柄(ActionEvente)。如果发生注册事件,处理程序方法中的代码将被处理,但不总是这样。但是打印了以下异常跟踪。我错过了什么吗?
问题内容: 当我的程序尝试从数据库中按名称加载用户时,如何解决Hibernate 偶尔引发的异常的原因? 我将表中的列错误地映射到类而不是其他某种整数类型吗?请注意,同一应用程序将其他表中的列映射到对象,但是当用来自这些表的行填充对象时,Hibernate 不会 引发此异常。 进一步注意到,该方案使 RMI缓存复制 的 唯一用户缓存 。此异常可能与缓存复制有关吗?它是Ehcache还是Hibern
问题内容: 我想这是某种依赖性问题,所以这是我的树: 从我发现的情况来看,Spring 4.1.1应该可以与javax.servlet 3.1.0一起使用,但是 我 在调用response.getStatus( ) 时遇到了 java.lang.NoSuchMethodError:javax.servlet.http.HttpServletResponse.getStatus() )放在我的拦截器
问题内容: 我无法想象自己对此有一个很好的答案,所以我想到了在这里提问。在我看来,我一直想知道如果我的 MySQL 表中的列用完了会怎样? 举例来说,我有一个包含两列的表。的 ID ()和 DESC ()。我当然知道很多,但是可以达到极限。如何处理场景,其中 的情况下, 该 ID 达到它的极限?我需要其他服务器吗?如果可以,该如何同步呢?这是正确的方法吗?任何有识之士的朋友。 问题答案: 它不会用
问题内容: 我尝试获取一些数据库值并将其显示在列表视图中。 这是我的代码: 我得到的RuntimeException 这是错误: 03-11 20:11:24.650:E / AndroidRuntime(887):java.lang.RuntimeException: 无法启动活动 ComponentInfo {com.NIRR.redistributionsystem / com.NIRR.r