【发布时间】:2020-05-30 18:25:46
【问题描述】:
我正在使用 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) 时,我收到 null。
CREATE TABLE `account` (
`accountId` bigint(19) NOT NULL AUTO_INCREMENT,
`accountNumber` varchar(100) NOT NULL,
`currentBalance` decimal(10,5) NOT NULL,
PRIMARY KEY (`accountId`)
)
我该如何制作这种方法?谢谢!
【问题讨论】:
-
在数据库中,Account 存在,搜索 accountNumber ?
-
是的,该列是 accountNumber。我用表格更新了帖子。
-
我的意思是数据库中存在任何帐户数据。其中 accountNumber 是您要搜索的内容。你的预期输出是什么?
-
感谢 Eklavya,我搜索了数据库中不存在的数据
标签: java spring spring-boot jpa spring-data-jpa