首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在使用CrudRepository方法findById(Long Id)时更改列名?

是否可以在使用CrudRepository方法findById(Long Id)时更改列名?
EN

Stack Overflow用户
提问于 2020-05-08 22:02:32
回答 1查看 208关注 0票数 1

我使用JPA、Spring作为示例应用程序并扩展CrudRepository。我进行REST调用并传递一个Id来搜索带有该Id的所有行。

在内部,我调用repository.findById(长Id)方法来执行搜索。但是,此方法总是对“主键”列进行搜索。是否可以使用此方法或任何其他方法对同一表中的“外键”列进行搜索?

我的表有下面的列

代码语言:javascript
运行
复制
Name      DataType 
--------------------------------------
Id        BIGIN(8)      PK, AI
comment   VARCHAR(100)  Not Null
userId    BIGINT(8)     FK  Not Null 

我想按userId搜索,但findById默认使用Id

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-09 06:11:32

您必须在存储库中添加新方法。

如果实体类中没有任何关系,则使用本机查询(假设Comment为实体)

代码语言:javascript
运行
复制
@Query(value = "SELECT * FROM Comment WHERE userId = ?1", nativeQuery = true)
List<Comment> findByUserId(long userId);

如果实体类中有关系,那么使用这个。

代码语言:javascript
运行
复制
List<Comment> findByUserId(long userId);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61688809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档