业务类别(ywlb)与一级指标(yjzb)是一对多数据关系,Ywlb.hbm.xml文件如下:
<hibernate-mapping>
    <class name="pbc.xjtac.zfjc.vo.Ywlb" table="ywlb" catalog="zfjc">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="ywlb" type="java.lang.String">
            <column name="ywlb" length="45" />
        </property>
        <property name="qz" type="java.lang.Float">
            <column name="qz" precision="12" scale="0" />
        </property>
        <set name="yjzbs" cascade="all" inverse="true">
         <key>
             <column name="ywlb_id"></column>
         </key>
         <one-to-many class="pbc.xjtac.zfjc.vo.Yjzb"></one-to-many>
        </set>
    </class>
</hibernate-mapping>
Yjzb.hbm.xml的映射文件如下:
<hibernate-mapping>
    <class name="pbc.xjtac.zfjc.vo.Yjzb" table="yjzb" catalog="zfjc">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>      
        <property name="yjzb" type="java.lang.String">
            <column name="yjzb" length="45" />
        </property>
        
        <set name="rjzbs" cascade="all">   //此处是建立与二级指标一对多关联关系
            <key>
                <column name="yjzb_id"></column>
            </key>
            <one-to-many class="pbc.xjtac.zfjc.vo.Rjzb"/>
        </set>
    </class>
</hibernate-mapping>
JgxxAction如下:
public class JgxxAction {
 private String ywlb;
  private Float qz;  
  private String yjzb;
 Setter、Getter方法省略
//增加业务项目
public String addYwlb(){
Ywlb ywlbs =new Ywlb();
ywlbs.setYwlb(ywlb);
ywlbs.setQz(qz);

if(jgxxService.findYwlb(ywlb)==null){
jgxxService.addYwlbS(ywlbs);
return "addywlbS";
}else{
return "addywlbF";
}}//增加一级指标
public String addYjzb(){
Yjzb yjzbs = new Yjzb();
yjzbs.setYjzb(yjzb);   
if(jgxxService.findYjzbS(yjzb)==null){
jgxxService.addYjzbS(yjzbs);
return "addyjzbS";
}else{
return "addyjzbF";
}
}}
JgxxDaoHiberImpl文件如下
public class JgxxDaoHibImpl extends HibernateDaoSupport implements JgxxDao {
//查找业务项目名称
public Ywlb findYwlbD(String ywlb){
List<Ywlb> list =this.getHibernateTemplate().find("from Ywlb where ywlb =?",ywlb);
if(list.size()>0){
return list.get(0);
}
return null;
}
//增加业务类别
public void addYwlbD(Ywlb ywlb){
this.getHibernateTemplate().persist(ywlb);
}
//查找一级指标名称
public Yjzb findYjzbD(String yjzb){
List<Yjzb> list = this.getHibernateTemplate().find("from Yjzb where yjzb = ?",yjzb);
if(list.size()>0){
return list.get(0);
}else{
return null;
}}

//增加一级指标
public void addYjzbD(Yjzb yjzb){
this.getHibernateTemplate().persist(yjzb);
}
}
在JSP页面增加业务类别、权重时,在数据库中yjzb表中可以自动增加ID值,而ywlb表中则不能增加记录值,不知是什么原因?还有在多个表之间,是否建立多个关联关系?

解决方案 »

  1.   

    是不是高手都下班了?没人理我
      

  2.   

    如果条件允许的话,你可以尝试清空一些数据库尝试一下,有时候环境不干净是会有这种问题
      

  3.   

    不干净,,,,,。。还不卫生呢
      

  4.   

    表中的记录已清除,但还是不行,多方的数据表的ID值自动增长,一方的数据表没有记录
      

  5.   

    调试一下吧,应该不是什么大的问题
      

  6.   

    难到没有人知道这个一对多数据关联怎样做吗?