每当我尝试在netbeans中连接ireport和hibernate时,我都会收到错误"找不到组件类:Sustainability.ProductionSavingId"。当我运行该程序时,它不会显示任何错误,但当我尝试使用hibernate将ireport连接到数据库时,它会抛出错误。我已经添加了所需的类路径和jar文件。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Feb 1, 2013 7:21:28 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="Sustainability.Productionsaving" table="productionsaving" catalog="gdp">
<composite-id name="id" class="Sustainability.ProductionsavingId">
<key-property name="categoryName" type="string">
<column name="CategoryName" length="25" />
</key-property>
<key-property name="date" type="timestamp">
<column name="Date" length="19" />
</key-property>
</composite-id>
<many-to-one name="users" class="Sustainability.Users" fetch="select">
<column name="Username" length="20" />
</many-to-one>
<many-to-one name="category" class="Sustainability.Category" update="false" insert="false" fetch="select">
<column name="CategoryName" length="25" not-null="true" />
</many-to-one>
<property name="savingAmount" type="java.lang.Double">
<column name="SavingAmount" precision="22" scale="0" />
</property>
<property name="quantity" type="java.lang.Double">
<column name="Quantity" precision="22" scale="0" />
</property>
<property name="unit" type="string">
<column name="Unit" length="5" />
</property>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Feb 1, 2013 7:21:28 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="Sustainability.Productionsaving" table="productionsaving" catalog="gdp">
<composite-id name="id" class="Sustainability.ProductionsavingId">
<key-property name="categoryName" type="string">
<column name="CategoryName" length="25" />
</key-property>
<key-property name="date" type="timestamp">
<column name="Date" length="19" />
</key-property>
</composite-id>
<many-to-one name="users" class="Sustainability.Users" fetch="select">
<column name="Username" length="20" />
</many-to-one>
<many-to-one name="category" class="Sustainability.Category" update="false" insert="false" fetch="select">
<column name="CategoryName" length="25" not-null="true" />
</many-to-one>
<property name="savingAmount" type="java.lang.Double">
<column name="SavingAmount" precision="22" scale="0" />
</property>
<property name="quantity" type="java.lang.Double">
<column name="Quantity" precision="22" scale="0" />
</property>
<property name="unit" type="string">
<column name="Unit" length="5" />
</property>
</class>
</hibernate-mapping>
/**
* Productionsaving generated by hbm2java
*/
public class Productionsaving implements java.io.Serializable {
private ProductionsavingId id;
private Users users;
private Category category;
private Double savingAmount;
private Double quantity;
private String unit;
public Productionsaving() {
}
public Productionsaving(ProductionsavingId id, Category category) {
this.id = id;
this.category = category;
}
public Productionsaving(ProductionsavingId id, Users users, Category category, Double savingAmount, Double quantity, String unit) {
this.id = id;
this.users = users;
this.category = category;
this.savingAmount = savingAmount;
this.quantity = quantity;
this.unit = unit;
}
public ProductionsavingId getId() {
return this.id;
}
public void setId(ProductionsavingId id) {
this.id = id;
}
public Users getUsers() {
return this.users;
}
public void setUsers(Users users) {
this.users = users;
}
public Category getCategory() {
return this.category;
}
public void setCategory(Category category) {
this.category = category;
}
public Double getSavingAmount() {
return this.savingAmount;
}
public void setSavingAmount(Double savingAmount) {
this.savingAmount = savingAmount;
}
public Double getQuantity() {
return this.quantity;
}
public void setQuantity(Double quantity) {
this.quantity = quantity;
}
public String getUnit() {
return this.unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
}
import java.util.Date;
/**
* ProductionsavingId generated by hbm2java
*/
public class ProductionsavingId implements java.io.Serializable {
private String categoryName;
private Date date;
public ProductionsavingId() {
}
public ProductionsavingId(String categoryName, Date date) {
this.categoryName = categoryName;
this.date = date;
}
public String getCategoryName() {
return this.categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public Date getDate() {
return this.date;
}
public void setDate(Date date) {
this.date = date;
}
public boolean equals(Object other) {
if ( (this == other ) ) return true;
if ( (other == null ) ) return false;
if ( !(other instanceof ProductionsavingId) ) return false;
ProductionsavingId castOther = ( ProductionsavingId ) other;
return ( (this.getCategoryName()==castOther.getCategoryName()) || ( this.getCategoryName()!=null && castOther.getCategoryName()!=null && this.getCategoryName().equals(castOther.getCategoryName()) ) )
&& ( (this.getDate()==castOther.getDate()) || ( this.getDate()!=null && castOther.getDate()!=null && this.getDate().equals(castOther.getDate()) ) );
}
public int hashCode() {
int result = 17;
result = 37 * result + ( getCategoryName() == null ? 0 : this.getCategoryName().hashCode() );
result = 37 * result + ( getDate() == null ? 0 : this.getDate().hashCode() );
return result;
}
}
该错误意味着您引用的类不存在于类路径中。请确保使用正确的包名和类名引用类。你的包裹名称对我来说似乎不标准。应该是之类的
com.mycompany.whatever.Sustainability
所以一定不要错过那一次。此外,我注意到在您粘贴的错误中,ProductionSavingId
的大小写与您显示的hbm中的大小写不同。也许是大小写敏感度不匹配。