使用外键从 table 中检索条目 (Hibernate)

Retrieve entry from table using foreign key (Hibernate)

我正在学习如何使用 Hibernate,我有一个关于查询具有一对一关系的 table 的问题。

有两个 table,EmployeeAccount,它们具有一对一的关系。 Employee 的主键是员工 ID。我想将这个 id 用于 Account,我知道它因此可以定义为 Account table 中的外键。

@Entity
@Table
public class Employee
{
    @Id
    private int employeeId;
}

@Entity
@Table
public class Account
{
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "employeeId", referencedColumnName = "employeeId", nullable=false, insertable=false, updatable=false, foreignKey = @ForeignKey(name="FK_Account_Employee"))
    private Employee employee;
}

请注意 Account 没有额外的 id 字段。员工 ID 外键是唯一的。这是acceptable吗?

我已经为 Account 声明了一个存储库接口,如下所示:

@Repository
public interface AccountRepository extends JpaRepository<Account, Integer>
{
}

如何使用员工 ID 从此 table 检索条目?

例如像

accountRepository.getOne(employeeId)

您可能希望将以下方法添加到您的存储库中。

根据 Spring Data JPA 的方法命名,这应该从其 Employee 对象的 id 字段中检索您的 Account :

Account findByEmployee_Id(Integer employeeId)