Spring JPA/Hibernate findby 列名返回空集合
Posted
技术标签:
【中文标题】Spring JPA/Hibernate findby 列名返回空集合【英文标题】:Spring JPA/Hibernate findby column name return empty collection 【发布时间】:2017-05-08 21:07:24 【问题描述】:我有一个包含 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);
这里是休眠查询和结果
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]
: []
它返回一个空列表,但是当我直接执行上述查询时,我得到了结果。
请帮我解决这个问题。我在这里做错了吗?
【问题讨论】:
要么你没有传递相同的 storeNumber,要么你和应用程序没有使用同一个数据库,要么你看到的数据已经插入但尚未提交。 请在您遇到问题的地方添加一段代码。 请不要覆盖我所做的编辑,如果它使帖子看起来更糟。 我使用的是相同的 database 和 storeNumber,而且我只是从 DB 中读取现有数据。 尝试直接运行commit
命令并重新启动您的应用程序并检查结果。设置参数后尝试打印查询。
【参考方案1】:
如果您希望在数据库中保留带下划线的字段名称,请使用 @Column(name="store_number")
注释您的实体字段并将您的字段重命名为驼峰式。
@Column(name="store_number")
private int storeNumber;
在你的仓库中,你可以使用方法
findByStoreNumber(int storeNumber)
【讨论】:
使用相同..请看问题部分的实体类代码 默认他可以在数据库中使用下划线,驼峰式的会被分割成下划线。 ***.com/a/29088398/3448799 尝试将您的storeNumber
更改为int
或long
,或者如果您的storeNumber
是字母数字,请提供另一个字段,即id
并由@GeneratedValue
注释跨度>
以上是关于Spring JPA/Hibernate findby 列名返回空集合的主要内容,如果未能解决你的问题,请参考以下文章
JPA---Spring-data-JPA---Hibernate
JPA---Spring-data-JPA---Hibernate
Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例
Spring,JPA,Hibernate,Atomikos - 奇怪的启动错误