1

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;
   }   


}
4

1 に答える 1

0

エラーは、クラスパスに存在しないクラスを参照していることを意味します。適切なパッケージ名とクラス名でクラスを参照していることを確認してください。あなたのパッケージ名は私には標準的ではないようです。それは次のようなものでなければなりません

com.mycompany.whatever.Sustainability

ですから、それを見逃さないようにしてください。また、貼り付けたエラーで、表示ProductionSavingIdされた hbm のケーシングが同じではないことに気付きました。たぶん、大文字と小文字の区別の不一致です。

于 2013-02-18T01:37:21.240 に答える