多语言展示
当前在线:218今日阅读:26今日分享:39

springmvc hibernate多对一查询关联对象为null

springmvc hibernate中在使用get(classname,id)进行查询时,不能查询到关联属性值,查询为null。所以在使用当前属性获取属性的属性值是肯定会空异常错误的,java.lang.NullPointerException。如图:
工具/原料

文本编辑器

方法/步骤
1

造成原因:因为在hibernate的中 为提高效率,lazy(懒加载机制)是默认为true的。开启此机制,加载当前对象时,对外键的对象属性是不进行查询赋值的。同时,还有对应的fetch和outer-join属性也得进行相应设置。

2

解决办法1:在配置文件的外键配置属性设置属性值:加粗几个属性进行对应设置就行。解决办法2:自己写hql外链代码:select e.id,e.name,d.name from employee e inner join department d ;select e.id,e.name,d.name from employee e left (outer) join department d;select e.id,e.name,d.name from employee e right (outer) join department d ;

3

最后如图:属性正确获得。推荐使用第一种方法。

注意事项

关联属性对象一定要存在,否则会造成相同的错误。

推荐信息