java - 如何从 Spring Data JPA 在 JpaRepository 中创建自定义方法?
问题描述
我正在使用 Spring Data JPA 中的 JpaRepository 来调用 MySQL 数据库。我知道我不需要为 findById、save 等添加方法,因为它们是由 Spring 实现的,但我想添加一个方法:findByAccountNumber()
我不知道该怎么做。
我试图以这种方式做,但它不工作:
@Repository
public interface AccountRepository extends JpaRepository<Account, Long> {
Account findByAccountNumber(String accountNumber);
}
账户类:
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
@Table(name = "account")
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "accountId")
private Long accountId;
@Column(name = "accountNumber")
private String accountNumber;
@Column(name = "currentBalance")
private BigDecimal currentBalance;
}
所以当我打电话时,accountRepository.findByAccountNumber(accountNumber)
我收到空值。
CREATE TABLE `account` (
`accountId` bigint(19) NOT NULL AUTO_INCREMENT,
`accountNumber` varchar(100) NOT NULL,
`currentBalance` decimal(10,5) NOT NULL,
PRIMARY KEY (`accountId`)
)
我该怎么做这个方法?谢谢!
解决方案
也许您需要添加org.springframework.data.repository.query.Param注释。
Account findByAccountNumber(@Param("accountNumber") String accountNumber);
推荐阅读
- go - 如何解组数据库中的 float64 记录以创建插入
- ruby-on-rails - 如果活动记录对象具有属性并且是唯一的
- javascript - 使用 Jest 编写函数测试
- bash - 安装 Google Cloud SDK:找不到 gcloud 命令
- android - 如何使 AlertDialog 中的 DropdownButton 将文本更新为 Flutter 中的选定项目?
- coq - 相等索引的归纳类型意味着相等的索引
- gitlab-ci - 从 gitlab ci 执行 reckonTagCreate 但身份验证失败
- python - 如何围绕矩阵中的特定点展开网格?
- security - 如何修复 macOS Catalina 错误“未授权将苹果事件发送到终端”?
- sql - 创建一个不断返回新行的存储过程