如下代码,upOneLevel = upOneLevel.getTInsInf();
此时从数据库懒加载查询实体对象,因hibernate懒加载查询机制,获取的对象不为null,而是一个仅含有id键的空对象,
若根据 upOneLevel != null 判断则永为true ,故需增加id主键判断方可
// 机构详情 String insDetail = "," + inf.getInsId() + ","; if (upOneLevel != null) { while (upOneLevel != null && StrUtil.isNotEmpty(upOneLevel.getInsId())) { insDetail += upOneLevel.getInsId() + ","; upOneLevel = upOneLevel.getTInsInf(); } } tInf.setInsDetail(insDetail);
如下图,已然抛异常,但upOneLevel 不为null,判断id是否为空,从而判断该数据是否存在