Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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中实现联合继承时,Eclipse显示了一个错误_Java_Sql_Eclipse_Oracle_Jpa - Fatal编程技术网

Java 当我试图在JPA中实现联合继承时,Eclipse显示了一个错误

Java 当我试图在JPA中实现联合继承时,Eclipse显示了一个错误,java,sql,eclipse,oracle,jpa,Java,Sql,Eclipse,Oracle,Jpa,我拥有以下表格继承权: 创建表父级 id号主键, 第1列VARCHAR100 ; 创建表子项 id号主键引用Parentid, -其他栏目 ; 然后我有了类的继承权来映射这两个表之间的连接继承 @映射超类 类基类实现可序列化{ @Columnname=column1 受保护字符串列1; } @实体 @InheritationSectorategy.InheritanceType.JOINED @DiscriminatorColumnname=类型 @Tablename=父项 类父级扩展了基{ @

我拥有以下表格继承权:

创建表父级 id号主键, 第1列VARCHAR100 ; 创建表子项 id号主键引用Parentid, -其他栏目 ; 然后我有了类的继承权来映射这两个表之间的连接继承

@映射超类 类基类实现可序列化{ @Columnname=column1 受保护字符串列1; } @实体 @InheritationSectorategy.InheritanceType.JOINED @DiscriminatorColumnname=类型 @Tablename=父项 类父级扩展了基{ @身份证 @GeneratedValuestrategy=GenerationType.AUTO 私人长id; } @实体 @鉴别器值 @Tablename=child @PrimaryKeyJoinColumnname=id 类子级扩展父级{ //其他栏目 ... } Eclipse在最后一个类中显示了一个错误,告诉我它无法解析column1,而它不应该解析column1。从我对联合继承策略的理解来看,应该不会有这个专栏。我到处搜索,一切照章办事,但都没有用

我想尝试运行一个测试—可能是Eclipse的一个小故障—但不幸的是,我已经有50多个表要处理,每个表至少与十几个其他表有关系—这一个依赖于另外5个表中的信息,每个表目前都有自己的问题-,所以我希望能有一些快速的指示,告诉我哪里可能出错

事先非常感谢

更新

错误消息:

在隐式属性覆盖column1中,不能忽略column1列 解决了桌上的孩子


没有提供更多信息。

我发现了这段代码的问题所在

类子类继承父类的所有内容,包括基类及其列定义,因为@MappedSuperClass适用于所有继承的类

我尝试了一种不同的方法来解决这个问题,方法是将列分组到@Embeddeble中,并将其嵌入父类中,尽管这是多余的

我之所以说冗余,是因为每次我创建一个新的父对象——在我的例子中,有很多父对象——我都必须添加基本引用


这可能不是一个解决方案,更像是一个变通方法,但目前已经足够了。

请显示准确完整的错误消息。子表中是否有第1列?消息说它在child中找不到column1;它不要求父表中的列位于子表中。因此,在这种情况下,这个错误似乎不合逻辑。
@Embeddable
class Base implements Serializable {

    @Column(name="column1")
    protected String column1;

}

@Entity
@Inheritance(strategy.InheritanceType.JOINED)
@DiscriminatorColumn(name="type")
@Table(name="parent")
class Parent {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;

    @Embdedded
    private Base base;

}

@Entity
@DiscriminatorValue("val")
@Table(name="child")
@PrimaryKeyJoinColumn(name="id")
class Child extends Parent {

    // other columns
    ...
}