歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate查詢部分字段(含外鍵)出錯,報空指針異常解決

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 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved