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

时间:2016-12-23 07:02:47

标签: java hibernate spring-boot spring-data-jpa

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

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

Bean类:

@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]

   : []

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

请帮我解决这个问题。我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

findByStoreNumber(int storeNumber)