1

根据以下代码,我有 2 个实体具有一对一的关系。

    @Entity
    public class Student
    {
        
        @Id
        @GeneratedValue
        private long id;
        
        private String name;
        
        @OneToOne( fetch = FetchType.LAZY )
        private Passport passport;
        
    }


    @Entity
    public class Passport
    {

        @Id
        @GeneratedValue
        private long id;

        private String number;

        @OneToOne( fetch = FetchType.LAZY, mappedBy = "passport" )
        private Student student;

}

我是否需要创建两个 spring Data Repositories 来存储 Passport 和 Student ?
还是有更好的解决方案?

4

1 回答 1

1

是的。为模型中的每种实体类型定义单个数据访问对象(存储库)通常是一种很好的做法。

通常我会做些什么来帮助解决繁琐的问题是定义一个具有 id 和创建时间戳的“映射超类” BaseEntity,并为该基础实体创建一个存储库。然后所有其他实体都可以从该存储库扩展,并且它们都可以访问常用方法,例如findById(Long id).

于 2020-06-20T19:59:23.757 回答