Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA中成员实体的继承问题_Java_Hibernate_Jpa - Fatal编程技术网

Java JPA中成员实体的继承问题

Java JPA中成员实体的继承问题,java,hibernate,jpa,Java,Hibernate,Jpa,我在使用JPA时遇到问题。我问问题是想得到你的帮助 成员实体分为两种类型: OAuth2用户 一般用户(ID、密码) 它们的结构如下:每个球形类继承一个抽象成员类的结构 Abstract Member Class ᄂ OAuth2Member ᄂ GeneralMember 成员与名为项目实体的实体相关联。(1:N) 但是,由于项的成员字段类型为member.class,这是一个抽象类,因此引用将发生未知实体错误 在这种情况下我该怎么办?我必须将General和OAuth2成员实体分为两类。请

我在使用JPA时遇到问题。我问问题是想得到你的帮助

成员实体分为两种类型:

  • OAuth2用户
  • 一般用户(ID、密码)
  • 它们的结构如下:每个球形类继承一个抽象成员类的结构

    Abstract Member Class
    ᄂ OAuth2Member
    ᄂ GeneralMember
    
    成员与名为项目实体的实体相关联。(1:N)

    但是,由于项的成员字段类型为member.class,这是一个抽象类,因此引用将发生未知实体错误


    在这种情况下我该怎么办?我必须将General和OAuth2成员实体分为两类。请帮助我

    在这种情况下,您可以使用
    @继承
    注释:

    @实体
    @继承(策略=InheritanceType.SINGLE_表)
    公共班级成员{
    //公共字段
    }
    @实体
    公共类OAuth2Member扩展成员{
    //田地
    }
    @实体
    公共类GeneralMember扩展成员{
    //田地
    }
    
    最后

    @实体
    公共类项目{
    @许多酮
    私人会员;
    }
    
    使用
    InheritanceType.SINGLE_TABLE
    策略将所有子类映射到同一个数据库表。你可以看到什么策略最适合你,不同的策略有不同的缺点

    Item {
        @ManyToOne
        private member;
    }