你的HBM中对象属性和Standard class中的属性名无发对应上,你看到数据库中ID项Y有值也是因为那个字段是递增字段罢了

解决方案 »

  1.   

    改正后:
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
    <hibernate-mapping>
    <class name="Standard" table="standard">
    <id name="standardId" column="standard_id" type="java.lang.Integer" unsaved-value="0">
    <generator class="increment" />
    </id>
    <property name="standardName" column="standard_name" type="java.lang.String" />
    <property name="standardtest" column="standard_test" type="java.lang.Integer" />
    </class>
    </hibernate-mapping>public class Standard
        implements Serializable
    {
    private int standardId;
    private int standardtest;
    private String standardName;

    /**
     * @return Returns the standard_id.
     */
    public int getStandardId() {
    return standardId;
    }
    /**
     * @param standard_id The standard_id to set.
     */
    public void setStandardId(int standard_id) {
    this.standardId = standard_id;
    }
    /**
     * @return Returns the standard_name.
     */
    public String getStandardName() {
    return standardName;
    }
    /**
     * @param standard_name The standard_name to set.
     */
    public void setStandardName(String standard_name) {
    this.standardName = standard_name;
    }
    /**
     * @return Returns the standard_test.
     */
    public int getStandardtest() {
    return standardtest;
    }
    /**
     * @param standard_test The standard_test to set.
     */
    public void setStandardtest(int standard_test) {
    this.standardtest = standard_test;
    }
    }
    测试通过:
    Configuration cfg = new Configuration();

    SessionFactory sf =cfg.configure( new File("src/hibernate.cfg.xml")).buildSessionFactory();
    Session session = sf.openSession();
    trans = session.beginTransaction();
    Standard standard = new Standard();
    standard.setStandardName("name");
    standard.setStandardtest(100);
    session.save(standard);