使用外键从表中检索条目(休眠)

时间:2019-01-04 11:01:30

标签: java database hibernate foreign-keys one-to-one

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

有两个表EmployeeAccount具有一对一的关系。 Employee的主键是员工ID。我想将此ID用于Account,并且我知道可以在Account表中将其定义为外键。

@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外键是唯一的。这可以接受吗?

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

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

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

例如像

accountRepository.getOne(employeeId)

1 个答案:

答案 0 :(得分:1)

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

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

Account findByEmployee_Id(Integer employeeId)