在民族这一列不显示,是什么原因呀?

在民族这一列不显示,是什么原因呀?

img


首先,这是我的数据库

img

passenger表添加nation的从表
通过jsp界面显示界面的代码】

序号:${pa.id}
民族${pa.nation.word}
姓名${pa.name}
身份证号码${pa.idcardnumber}
电话号${pa.phone}
从哪里来${pa.fromwhere}
到哪里去${pa.togo}
备注${pa.remark}
日期
图片
民族这一列不显示 控制呈调用的代码为 public String findone(){ pa = mydao.findById(pa.getId());//查找一https://img-mid.csdnimg.cn/release/static/image/mid/ask/530150141276118.png "#left") 条新闻; return "one"; } DAO呈调用的代码为
public Passenger findById(java.lang.Integer id) {//根据id,查找一条新闻;
    log.debug("getting Passenger instance with id: " + id);
    Session session =getSession();
    try {
        Passenger instance = (Passenger) session.get("myhibernate.Passenger", id);
        return instance;
    } catch (RuntimeException re) {
        log.error("get failed", re);
        throw re;
    }finally{session.close();}
}

我不明白到底哪里出现了错误,求帮助

img

民族后面的表达式这种形式获取不到值。

找到原因了,根据程序的运行,民族后面的表达式这种形式获取不到值。在${pa.nation.word}中,先抓取pa.nation,后抓取nation.word,先抓取pa.nation为空,则不抓取nation.word,所以${pa.nation.word}为null,修改相应的.hbm.xml文件,通过many-to-one 元素,可以定义一种常见的与另一个持久化类的关联得关系强度,即添加 lazy=false" 于 many-to-one 语句属性中,修改lazy="false" 指定nation.word关联总是被预先抓取。问题便解决了

img