Hibernate查询部分字段(含外键)出错,报空指针异常解决

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错

Hibernate查询部分字段(含外键)出错,报空指针异常解决方法:

假设当前表结构如下:

  food表字段有foodid,name,外键businessid,外键type

  business表字段有,name,外键type

  type表字段有id,name,foodid

Hibernate生成的对应POJO分别是Food,Business,Type

需要查询food表部分字段,如name和外键businessid

  则可在Food类中添加只有相应成员变量的构造方法,Food(String name,Business business)

使用hql语句

select new Food(name,business) from Food where foodid=1

以上可以顺利查询,但是如果调换name和顺序

使用Food(Business business,String name)

hql语句

select new Food(business, name) from Food where foodid=1

就会报空指针异常

这其实是因为外键的关联表Business中也含有叫name的字段,所以会发生错误,此时只要给查询表使用别名就可以解决了.

正确的语句:

select new Food(f.business, f.name) from Food f where foodid=1

同理,如果也查询外键type, 那么:

错误的语句:

select new Food(name,business,type) from Food where foodid=1

正确的语句:

select new Food(f.name,f.business,f.type) from Food f where f.foodid=1

Hibernate3.1.2_中文文档PDF  http://www.linuxidc.com/Linux/2016-02/128462.htm

Hibernate学习入门教程  http://www.linuxidc.com/Linux/2015-08/121498.htm

在Hibernate中开启日志 http://www.linuxidc.com/Linux/2015-07/120499.htm

Hibernate+JUnit测试实体类生成数据库表  http://www.linuxidc.com/Linux/2015-07/120161.htm

Hibernate整体理解 http://www.linuxidc.com/Linux/2014-07/104405.htm

Hibernate的映射机制  http://www.linuxidc.com/Linux/2014-12/110265.htm

Hibernate 的详细介绍请点这里
Hibernate 的下载地址请点这里

未经允许不得转载:演道网 » Hibernate查询部分字段(含外键)出错,报空指针异常解决

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册