问题:用hibernate只对多表(bbsrevert表)插入一条记录,单表(bbstopic,bbsusers)不插入数据,但多表有2个外键。
用mysql客户端执行:insert into bbsrevert values('1','1','sfasdfdsa','2009-01');这里就能成功插入。
目标:像在mysql客户端这样插入值。如果看不懂下面这个Action,就请看Action下面的代码,不知道我表达清楚没有,请各位高人指教。public class AddRevertAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

//添加回复
Session session=HibernateSessionFactory.getSession();
session.beginTransaction();

                Bbsrevert br=new Bbsrevert();
br.setRevertcontent("dfbhdfs");
br.setReverttime("2009-01");
        
                //问题在下面两行,这两个外键的ID如何插入
br.getBbstopic().setBbsid(1);  //这样写是不行的
br.getBbsusers().setUserid(1);

session.save(br);
session.getTransaction().commit();
session.close();

return null;
}-----------------------------------------
这是一个简单的BBS,有三个表
create table bbsrevert(   //回复表
bbsrevertid int not null auto_increment primary key,
bbsid int not null,    //外键
userid int not null,    //外键
revertcontent varchar(500) not null,
reverttime varchar(30) not null
) ;create table bbstopic(   //主题表
bbsid int not null auto_increment primary key,
topic varchar(150) not null,
topiccontent varchar(500) not null,
releasetime varchar(50) not null
) ;create table bbsusers(   //用户表
userid int not null auto_increment primary key,
username varchar(50) not null,
password varchar(50) not null,
useremail varchar(50) not null
) ;
------------------------用hibernate生成的pojo类,三个表一起生成的,没修改过
Bbsrevert.class
        private Integer bbsrevertid;
private Bbstopic bbstopic;
private Bbsusers bbsusers;
private String revertcontent;
private String reverttime;
        .......   get set 方法Bbstopic.class
        private Integer bbsid;
private String topic;
private String topiccontent;
private String releasetime;
private Set bbsreverts = new HashSet(0);
        ......Bbsusers.class
        private Integer userid;
private String username;
private String password;
private String useremail;
private Set bbsreverts = new HashSet(0);
        .......
--------------------------以下是三个类的.hbm.xml文件,加了cascade="all"<hibernate-mapping>
Bbsrevert.hbm.xml
    <class name="com.zk.pojo.Bbsrevert" table="bbsrevert" >
        <id name="bbsrevertid" type="java.lang.Integer">
            <column name="bbsrevertid" />
            <generator class="native" />
        </id>
        <many-to-one name="bbstopic" class="com.zk.pojo.Bbstopic" fetch="select" cascade="all">
            <column name="bbsid" not-null="true" />
        </many-to-one>
        <many-to-one name="bbsusers" class="com.zk.pojo.Bbsusers" fetch="select" cascade="all">
            <column name="userid" not-null="true" />
        </many-to-one>
        <property name="revertcontent" type="java.lang.String">
            <column name="revertcontent" length="500" not-null="true" />
        </property>
        <property name="reverttime" type="java.lang.String">
            <column name="reverttime" length="30" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
Bbstopic.hbm.xml
<hibernate-mapping>
    <class name="com.zk.pojo.Bbstopic" table="bbstopic" >
        <id name="bbsid" type="java.lang.Integer">
            <column name="bbsid" />
            <generator class="native" />
        </id>
        <property name="topic" type="java.lang.String">
            <column name="topic" length="150" not-null="true" />
        </property>
        <property name="topiccontent" type="java.lang.String">
            <column name="topiccontent" length="500" not-null="true" />
        </property>
        <property name="releasetime" type="java.lang.String">
            <column name="releasetime" length="50" not-null="true" />
        </property>
        
        <set name="bbsreverts" inverse="true" cascade="all" lazy="true">
           
            <key>
                <column name="bbsid" not-null="true" />
            </key>
            <one-to-many class="com.zk.pojo.Bbsrevert" />
        </set>
    </class>
</hibernate-mapping>
Bbsusers.hbm.xml
<hibernate-mapping>
    <class name="com.zk.pojo.Bbsusers" table="bbsusers" >
        <id name="userid" type="java.lang.Integer">
            <column name="userid" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="50" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="50" not-null="true" />
        </property>
        <property name="useremail" type="java.lang.String">
            <column name="useremail" length="50" not-null="true" />
        </property>
        
        <set name="bbsreverts" inverse="true" cascade="all" lazy="true">
        
            <key>
                <column name="userid" not-null="true" />
            </key>
            <one-to-many class="com.zk.pojo.Bbsrevert" />
        </set>
    </class>
</hibernate-mapping>