Hi,
I have two classes, AA which inherits from A. I use two tables and a discriminator. The discriminator is null in the table when the class is persisted. Here is my code deployed on AS 4.0.4CR2
***********
Class A
***********
@Entity @Table(name = "A") @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "DISCRIMINATOR", discriminatorType = DiscriminatorType.STRING, length = 5) @DiscriminatorValue("A") public class A implements Serializable { private short ida; public A() { } public A(short ida) { this.ida = ida; } @SequenceGenerator(name = "gen_a", sequenceName = "seq_a_id", allocationSize=1) @Id @GeneratedValue(strategy = SEQUENCE, generator = "gen_a") @Column(name="IDA") public short getIda() { return ida; } public void setIda(short ida) { this.ida = ida; } }
@Entity @Table(name = "AA") @PrimaryKeyJoinColumn(name = "IDAA") @DiscriminatorValue("AA") public class AA extends A { }
CREATE TABLE A ( idA number(2) constraint a_pk primary key, discriminator varchar2(5) constraint a_c_discriminator check (discriminator in ('A','AA')) ); create table AA( idAA number(2) constraint aa_pk primary key constraint aa_ref_a references a );
public void test(){ ... AA a = new AA(); adao.persist(a); ... }