adminInfo = this.adminInfoService.findAdminInfo(instrumentReservation.getAdminInfo().getId());
MailSender.sendMail(instrumentReservation.getAdminInfo.getEmail(), subject, content);//null point exceptionMailSender.sendMail(adminInfo.getEmail(), subject, content); //正常
有如下的主外键关系instrumentReservation 里面的adminId 参照adminInfo项目的SSH架构,Hibernate版本是3.6.1,Struts2的版本是2.2.3,Spring的版本是3.1为什么instrumentReservation.getAdminInfo.getEmail() 为空呢?
而instrumentReservation.getAdminInfo().getId() 是有值的,其他adminInfo的属性为nullhibernate映射文件如下:<many-to-one name="adminInfo" class="com.ya.entity.AdminInfo" fetch="select">
            <column name="adminId" precision="18" scale="0" />
        </many-to-one>

解决方案 »

  1.   

    那就要看看你的findAdminInfo()方法有没有对你的instrumentReservation进行操作
      

  2.   

    我觉得可能是你没有拿到级联的persist对象,你说的那个getId()是不是值栈里的值啊
      

  3.   


    instrumentReservation.getAdminInfo().getId() 是有值的,得到的是admin的id,其他adminInfo的属性为null,不是值栈里面的值啊。
      

  4.   


    感觉是 fetch="select"  这个设置值的关系,
    不是有个懒加载嘛
      

  5.   

    instrumentReservation.getAdminInfo()有对象没有
      

  6.   

    我指instrumentReservation.getAdminInfo()有值没,不是instrumentReservation.getAdminInfo().getId()
      

  7.   

    instrumentReservation.getAdminInfo()com.yaxing.entity.AdminInfo@192c4c 是有值的
      

  8.   


    instrumentReservation.getAdminInfo()com.yaxing.entity.AdminInfo@192c4c 是有值的 请问是为啥呢,谢谢。