使用外键从 table 中检索条目 (Hibernate)
Retrieve entry from table using foreign key (Hibernate)
我正在学习如何使用 Hibernate,我有一个关于查询具有一对一关系的 table 的问题。
有两个 table,Employee
和 Account
,它们具有一对一的关系。 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)
我正在学习如何使用 Hibernate,我有一个关于查询具有一对一关系的 table 的问题。
有两个 table,Employee
和 Account
,它们具有一对一的关系。 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)