1

私はテーブルを持っています

CREATE TABLE test_wopk
(
  id integer,
  "name" character(25),
  age integer
)

休止状態でのリバース インジェニリングの後、クラスとマッピング ファイルを取得します。

TestWopk.java

package gen;

// Generated 16.08.2012 14:08:26 by Hibernate Tools 3.4.0.CR1

/**
 * TestWopk generated by hbm2java
 */
public class TestWopk implements java.io.Serializable
{

private TestWopkId id;

public TestWopk()
{
}

public TestWopk(TestWopkId id)
{
    this.id = id;
}

public TestWopkId getId()
{
    return this.id;
}

public void setId(TestWopkId id)
{
    this.id = id;
}

}

TestWopkId.java

package gen;

// Generated 16.08.2012 14:08:26 by Hibernate Tools 3.4.0.CR1

/**
 * TestWopkId generated by hbm2java
 */
public class TestWopkId implements java.io.Serializable
{

private Integer id;
private String name;
private Integer age;

public TestWopkId()
{
}

public TestWopkId(Integer id, String name, Integer age)
{
    this.id = id;
    this.name = name;
    this.age = age;
}

public Integer getId()
{
    return this.id;
}

public void setId(Integer id)
{
    this.id = id;
}

public String getName()
{
    return this.name;
}

public void setName(String name)
{
    this.name = name;
}

public Integer getAge()
{
    return this.age;
}

public void setAge(Integer age)
{
    this.age = age;
}

public boolean equals(Object other)
{
    if ((this == other))
        return true;
    if ((other == null))
        return false;
    if (!(other instanceof TestWopkId))
        return false;
    TestWopkId castOther = (TestWopkId) other;

    return ((this.getId() == castOther.getId()) || (this.getId() != null && castOther.getId() != null && this.getId()
            .equals(castOther.getId())))
            && ((this.getName() == castOther.getName()) || (this.getName() != null && castOther.getName() != null && this
                    .getName().equals(castOther.getName())))
            && ((this.getAge() == castOther.getAge()) || (this.getAge() != null && castOther.getAge() != null && this
                    .getAge().equals(castOther.getAge())));
}

public int hashCode()
{
    int result = 17;

    result = 37 * result + (getId() == null ? 0 : this.getId().hashCode());
    result = 37 * result + (getName() == null ? 0 : this.getName().hashCode());
    result = 37 * result + (getAge() == null ? 0 : this.getAge().hashCode());
    return result;
}

}

TestWopk.hbm.xml

<?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 16.08.2012 14:08:26 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="gen.TestWopk" table="test_wopk">
    <composite-id name="id" class="gen.TestWopkId">
        <key-property name="id" type="java.lang.Integer">
            <column name="id" />
        </key-property>
        <key-property name="name" type="string">
            <column name="name" length="25" />
        </key-property>
        <key-property name="age" type="java.lang.Integer">
            <column name="age" />
        </key-property>
    </composite-id>
</class>
</hibernate-mapping>

db からデータを取得したい。

    Session session = HibernateUtil.currentSession();

    Transaction tx= session.beginTransaction();
    //чтение из бд
     List list = session.createQuery("from TestWopk").list();
 Iterator itr = list.iterator();
 while(itr.hasNext()){
   TestWopk test = (TestWopk) itr.next();
   System.out.print("EmpName: "+ test.getId());
   System.out.print(" EmpSal: "+ test.getName());
   System.out.print(" EmpSal: "+ test.getAge());
   System.out.println();
 }
    tx.commit();

    HibernateUtil.closeSession();

エラーを取得します

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
The method getName() is undefined for the type TestWopk
The method getAge() is undefined for the type TestWopk

at net.sf.hibernate.examples.quickstart.hib_main.main(hib_main.java:67)

休止状態によって生成されたクラスを操作する方法を教えてください。

4

1 に答える 1

2

コンパイルエラーが示すように、TestWopk.javaクラスにはgetName()およびgetAge()メソッドがありません。whileループをに変更します

        while(itr.hasNext()){    
        TestWopk test = (TestWopk) itr.next();
        System.out.print("EmpName: " + test.getId().getId());
        System.out.print(" EmpSal: " + test.getId().getName());
        System.out.print(" EmpSal: " + test.getId().getAge());
        System.out.println();
    }
于 2012-08-16T08:52:16.190 に答える