/*一级栏目类*/
@Entity
@Table(name = "tb_biglb")
public class BiglbBean implements Serializable {
private int bgid;
private String bgname;
private Set<SmlbBean> smlbs = new HashSet<SmlbBean>();@OneToMany(mappedBy="bglb",fetch=FetchType.EAGER)
public Set<SmlbBean> getSmlbs() {
return smlbs;
}....其他get()set()方法省略...
/*二级栏目类*/
@Entity
@Table(name = "tb_smlb")
public class SmlbBean implements Serializable {
private int smid;
private String smname;
private BiglbBean bglb;....其他get()set()方法省略...
@ManyToOne(cascade = { CascadeType.ALL}, fetch = FetchType.EAGER,targetEntity=BiglbBean.class)
@JoinColumn(name="bglbid")
public BiglbBean getBglb() {
return bglb;
}
jsp输入页面一级栏目名称:
<select name="?">
<c:if test="${biglblist!=null}">
<c:forEach items="${biglblist}" var="bigs">
<!-- 迭代取出列表中的Bean -->
<option value="${bigs.bgid}">
<!-- 绑定ID到选择值上 -->
${bigs.bgname}
<!-- 显示对应的内容 -->
</option>
</c:forEach>
</c:if>
</select>二级栏目名称:
<input name="smname" type="text" size="20" maxlength="20" />问题:
无论一级栏目选什么,在存入数据时,二级栏目中的外键映射总是null值,请教高手这个关联映射怎么做
输入页面的问号处--<select name="?">填写什么?
该填写什么才能绑定

解决方案 »

  1.   

    我以前写的  不过布置直接写的annotation  写的是XML/**
     * 文章栏目类
     * 
     * @author sunshine
     * 
     */
    public class Column {
    /**
     * 栏目ID
     */
    private int id;
    /**
     * 所属的父栏目
     */
    private Column parentColumn;
    /**
     * 栏目名称
     */
    private String columnName;
    /**
     * 栏目是否可用 0--不可用 1--可用
     */
    private int columnStatus;
    /**
     * 子栏目列表
     */
    private Set subColumns;
            
            略
    }
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.sunshine.model"> <class name="Column" table="t_column">
        <cache usage="read-only" region="com.sunshine.model.Column"/>
    <id name="id" column="column_id">
    <generator class="native" />
    </id>
    <property name="columnName" type="string" column="column_name"/>
    <property name="columnStatus" type="integer" column="column_status"/>
    <many-to-one name="parentColumn" column="parent_column_id"/>
    <set name="subColumns" lazy="false" inverse="true" 
                         order-by="column_id">
         <key column="parent_column_id"/>
         <one-to-many class="Column"/>
    </set>
    </class></hibernate-mapping>