保存失败!~ 大家帮我看看啊

<hibernate-mapping>

    <class name="org.vo.Type" table="type">

        <id name="typeid" type="java.lang.Integer">

            <column name="typeid">

            <generator class="native">

        </id>

        <property name="typename" type="java.lang.String">

            <column name="typename" length="50" not-null="true">

        </property>

        <set name="xuqius">        table="xuqiu" lazy="true" order-by="typeid">

            <key>

                <column name="typeid">

            </key>

            <one-to-many class="org.vo.Xuqiu">

        </set>

    </class>

</hibernate-mapping>



    private Integer typeid;

    private String typename;

    private Set xuqius;



<hibernate-mapping>

    <class name="org.vo.Xuqiu" table="xuqiu">

        <id name="id" type="java.lang.Integer">

            <column name="id">

            <generator class="native">

        </id>

        <many-to-one name="type" class="org.vo.Type">

            <column name="typeid">

        </many-to-one>

        <property name="name" type="java.lang.String">

            <column name="name" length="50" not-null="true">

        </property>

        <property name="xuqiu" type="java.lang.String">

            <column name="xuqiu" length="2000" not-null="true">

        </property>

        <property name="fdate" type="java.lang.String">

            <column name="fdate" length="23">

        </property>

        <property name="gdate" type="java.lang.String">

            <column name="gdate" length="23">

        </property>

        <property name="state" type="java.lang.Integer">

            <column name="state">

        </property>

    </class>

</hibernate-mapping>



    private Integer id;

    private Integer typeid;

    private String name;

    private String xuqiu;

    private String fdate;

    private String gdate;

    private Integer state;



    private Type type;



在action中



XuqiuForm xuqiuForm = (XuqiuForm) form;



Xuqiu xuqiu = new Xuqiu();

xuqiu.setName(xuqiuForm.getName());

System.out.println(xuqiuForm.getName());



Type t = new Type();

t.setTypeid(Integer.getInteger(xuqiuForm.getType()));

xuqiu.setType(t);

System.out.println(xuqiuForm.getType());



xuqiu.setTypeid(Integer.getInteger(xuqiuForm.getType()));

xuqiu.setXuqiu(xuqiuForm.getXuqiu());

System.out.println(xuqiuForm.getXuqiu());

xuqiu.setFdate(xuqiuForm.getFdate());

System.out.println(xuqiuForm.getFdate());

xuqiu.setGdate(xuqiuForm.getGdate());

System.out.println(xuqiuForm.getGdate());

xuqiu.setState(Integer.getInteger(xuqiuForm.getState()));

System.out.println(xuqiuForm.getState());



try {

this.ixuqiudao.Save(xuqiu);

} catch (Exception e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}



typeid为null  但是我System.out显示了值

尝试把你的pojo写成这样,在Type 上我添加了一个方便的方法 addXuqiu。另外,你的cascade控制在one端,所以保存时候只要保存one端,one端所依赖的另一端就自动保存了。
[code="java"]
package org.vo;

import java.io.Serializable;

public class Xuqiu implements Serializable {
private Integer id;
private Integer typeid;
private String name;
private String xuqiu;
private String fdate;
private String gdate;
private Integer state;

private Type type;

public Xuqiu() {
}

public Integer getId() {
    return id;
}

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

public Integer getTypeid() {
    return typeid;
}

public void setTypeid(Integer typeid) {
    this.typeid = typeid;
}

public String getName() {
    return name;
}

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

public String getXuqiu() {
    return xuqiu;
}

public void setXuqiu(String xuqiu) {
    this.xuqiu = xuqiu;
}

public String getFdate() {
    return fdate;
}

public void setFdate(String fdate) {
    this.fdate = fdate;
}

public String getGdate() {
    return gdate;
}

public void setGdate(String gdate) {
    this.gdate = gdate;
}

public Integer getState() {
    return state;
}

public void setState(Integer state) {
    this.state = state;
}

public Type getType() {
    return type;
}

public void setType(Type type) {
    this.type = type;
} 

}
[/code]

[code="java"]
package org.vo;

import java.util.*;
import java.io.Serializable;

public class Type implements Serializable {

private Integer typeid; 
private String typename; 
private Set xuqius = new HashSet();

public Type() {
}

public Integer getTypeid() {
    return typeid;
}
public void setTypeid(Integer typeid) {
    this.typeid = typeid;
}
public String getTypename() {
    return typename;
}
public void setTypename(String typename) {
    this.typename = typename;
}
public Set getXuqius() {
    return xuqius;
}
public void setXuqius(Set xuqius) {
    this.xuqius = xuqius;
} 
public void addXuqiu(Xuqiu xq) {
    xq.setType(this);
    xuqius.add(xq);
}

}

[/code]

[code="java"]
package org.vo;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import persistence.HibernateUtil;

public class Test {
public static void main(String[] args) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();

    Transaction tx = session.beginTransaction();

    Type type = new Type();
    type.setTypename("a");

    Xuqiu xq = new Xuqiu();
    xq.setFdate("a");
    xq.setGdate("a");
    xq.setName("a");
    xq.setState(1);
    xq.setXuqiu("a");

    type.addXuqiu(xq);

    session.save(type);

    tx.commit();

    session.close();
    HibernateUtil.shutdown();
}

}
[/code]