2016-12-23 65 views
0

我有2列store_number和manager_id表,我爲這個表創建了一個實體和一個存儲庫類。Spring JPA/Hibernate findby列名返回空集合

我試圖使用存儲庫方法如下

Bean類來查詢由store_number經理標識:

@Entity 
public class StoreManagers { 
    @Id 
    @GeneratedValue 
    @Column(name="store_number") 
    private String storeNumber; 
    private String managerId; 
    public StoreManagers() { 
    } 
    public String getStoreNumber() { 
     return storeNumber; 
    } 
    public void setStoreNumber(String storeNumber) { 
     this.storeNumber = storeNumber; 
    } 
    public String getManagerId() { 
     return managerId; 
    } 
    public void setManagerId(String managerId) { 
     this.managerId = managerId; 
    } 
    @Override 
    public String toString() { 
     return "StoreManagers [storeNumber=" + storeNumber + ", manageId=" + managerId + "]"; 
    } 
} 




public interface StoreManagersRepository extends JpaRepository<StoreManagers, String> { 
     List<StoreManagers> findByStoreNumber(String storeNumber); 
} 

這裏是Hibernate查詢和結果

Hibernate: select storemanag0_.manager_discount_id as manager_1_2_, storemanag0_.store_number as store_nu2_2_ from storemanagers storemanag0_ where storemanag0_.store_number=? 2016-12-23 12:16:15.763 TRACE 644 --- [nio-4000-exec-1] o.h.type.descriptor.sql.BasicBinder  : binding parameter [1] as [VARCHAR] - [00012] 

    : [] 

它返回一個空List ,但是當我直接執行上面的查詢時,我得到了結果。

請幫我這個。我在這裏做錯了嗎?

+0

要麼你不傳球同樣storeNumber,或者你和應用中不使用相同的數據庫,或者你的數據看到已經插入但尚未落實。 –

+0

請在有問題的地方添加一段代碼。 –

+0

請不要覆蓋我所做的修改,如果這會讓帖子看起來更糟糕。 –

回答

0

如果您希望在數據庫中使用@Column(name="store_number")來標註實體字段並將字段重命名爲駱駝大小寫。

@Column(name="store_number") 
private int storeNumber; 

在你的資料庫,就可以使用該方法

findByStoreNumber(int storeNumber) 
+0

使用相同。請參閱問題部分中的實體類代碼 – Hanumanthraju

+0

默認情況下,他可以在數據庫中使用下劃線,駱駝大小寫將被拆分爲下劃線。 http://stackoverflow.com/a/29088398/3448799 – richersoon

+0

嘗試將您的'storeNumber'更改爲'int'或'long',或者如果您的'storeNumber'是字母數字,請提供另一個字段,它將是'id'和由'@ GeneratedValue'註釋 – Kihats