Spring JPA/Hibernate findby 列名返回空集合

Han*_*aju 3 java hibernate spring-data-jpa spring-boot

我有一个包含 2 列 store_number 和 manager_id 的表,我为此表创建了一个实体和一个存储库类。

我正在尝试使用下面的存储库方法按 store_number 查询 manager_id

豆类:

@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); 
}
Run Code Online (Sandbox Code Playgroud)

这是休眠查询和结果

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]

   : []
Run Code Online (Sandbox Code Playgroud)

它返回一个空列表,但是当我直接执行上面的查询时,我得到了结果。

请在这件事上给予我帮助。我在这里做错了什么?

Kih*_*ats 5

如果您希望在数据库中保留带下划线的字段名称,请使用注释您的实体字段@Column(name="store_number")并将字段重命名为驼峰式大小写。

@Column(name="store_number")
private int storeNumber;
Run Code Online (Sandbox Code Playgroud)

在您的存储库中,您可以使用该方法

findByStoreNumber(int storeNumber)
Run Code Online (Sandbox Code Playgroud)