如何从 Spring Boot 中的实体访问存储库?

pup*_*eno 6 java spring jpa spring-boot

在 Spring Boot 项目中,我有一个 JPA 实体,如下所示:

@Entity
public class Account {
}
Run Code Online (Sandbox Code Playgroud)

然后我有存储库来查询数据库:

public interface AccountRepository extends JpaRepository<Account, UUID> {

}
Run Code Online (Sandbox Code Playgroud)

在应用程序和测试中,通过执行以下操作可以轻松获取存储库:

@Autowired
private AccountRepository accountRepository;
Run Code Online (Sandbox Code Playgroud)

如何在 Account 类的方法中获取存储库?我试过@Autowired,但没有用。

对于那些争论设计的人,我的问题与设计无关。我已经用 Ruby 和 Rails 以及带有 HugSQL 的 Clojure 编写了这段代码,它是独立且简洁的:在创建新记录时,我还生成了一个紧凑的唯一字母数字 id。在 Ruby on Rails 中,我将其作为库发布:https : //github.com/pupeno/random_unique_id

dim*_*sli 0

我猜你正在尝试在 Hibernate 中实现类似的东西Active Record pattern。这是很不寻常的,但你可以用@Configurable注释你的实体,这样你就可以在内部@Autowired工作(同时确保实体包在你的@ComponentScan范围内)