我有一个实体 Request
:
@Entity
public class Request {
@Id
@GeneratedValue
private Long id;
@OneToOne
private Candidate candidate;
...
}
要创建上述实体并将其保存到jpa存储库中,我将执行以下操作:
Candidate candidate = candidateRepository.findById(requestUpdate.getCandidate()).orElse(null);
Request request = new Request(candidate);
Request save = requestRepository.save(request);
作为 Request
db中的表为candidate存储fk,我认为设置一个id就足够了,但是jpa希望我设置candidate对象。这迫使我查询候选存储库。
是否需要从候选存储库中查询候选存储 Request
或者如果我有候选人身份证,我不能直接设置吗?
1条答案
按热度按时间bkkx9g8r1#
你需要使用
EntityManager#getReference
或者JpaRepository#getOne
. 它不会从数据库中获取整个实体,而是将您已有的id Package 到代理中以同步关系: