hibernate mysql 外键查询null_[解决方法]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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值