Hi,

following domain model:

@MappedSuperclass
public class BasicMetaData  {

    @Id
    @Column(name = "oid")
    private long oid;
...
}

@Entity
@VersionColumn(name = "jdoversion")
@Table(name = "foo1")
public class MetaData1 extends BasicMetaData {
}

@Entity
@VersionColumn(name = "jdoversion")
@Table(name = "foo2")
public class MetaData2 extends BasicMetaData {
}


Now i have a oid value of "1" in the DB for MetaData1. When i try to use also "1" as oid for MetaData2 and try to persist, i am getting an exception because Entity MetaData1 is somehow in the same "ID space". So is it correct that one cant define an ID field in a mapped Superclass when the IDs have their own "counter".

In this example, OpenJPA even thinks that MetaData2 is a detached instance of type MetaData1 because it looks in its cache and sees an OID with value 1 but for complete different entity.

To make it short? I must define the OID field on the subclasses right?


Marc



Reply via email to