程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> [解決方法]Hibernate查詢部分字段(含外鍵)出錯,報空指針異常,hibernate字段

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

編輯:JAVA綜合教程

[解決方法]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

 

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved