zoukankan      html  css  js  c++  java
  • hibernate取一张表里是外键的字段并在jsp中显示出来的方法

    例如:有student和studentcard两张表,

    student{sid(pk),sname}  studentcard{cid,sid(fk),cname}  studentcard字段sid参照student字段sid,现在想取studentcard所有字段并在jsp页面显示出来。

    这时会出问题,原因是当用annotation来写映射关系的时候,studentcard实体类里只会出现student类得对象,而不会出现sid字段,所以当在jsp页面上遍历查询studentcard返回的集合时,会因为没有sid字段而取不出该字段。

    解决方法:新建一个和数据库没有映射关系的studengcard2类{cid,sid,cname,getter/setter()}

    在DAO层里:

    Criteria criteria = session.createCriteria(student.class); 

         List list = criteria.list();

         Iterator it = list.iterator();
         List<studengcard2> list1 = new ArrayList<studengcard2>();
         
         studengcard scard = null;
         
         while(it.hasNext()){
          scard= (studengcard)it.next();
          studengcard2 scard2= new studengcard2();
          scard2.setcid(scard.getcid());

          scard2.setname(scard.getcname());

         scard2.setsid(scard.getstudent().getsid());//这里是关键,通过去student表里取出sid,然后set进studentcard2类里

          list1.add(scard2);    

         return list1;

    在jsp层:

    通过<c:forEach var="list" items="${list1}" varStatus="status">
             <tr>

              <td>
               <c:out value="${list.sid}" />
              </td>

         </tr>

    </table>

    就可以取出sid 这个外键字段了

  • 相关阅读:
    TextField 属性与注意
    as3:获取系统信息
    转:As3 优化总结,代码写法和api使用事项。
    文本编辑器制作(1):2种方案实现
    FlashBuilder编译参数
    as3 动态类库使用
    webgame:版本更新与本地缓存
    A*
    FlashBuilder方便的调试UI插件Monster Debugger
    sourcemate flex插件
  • 原文地址:https://www.cnblogs.com/damonhuang/p/2275625.html
Copyright © 2011-2022 走看看