I have 3 entities: 

```
@Entity
public abstract class A {
  @Id
  public Long id;
  public String a1;
  public String a2;
  public String a3;

  //much more fields    
  //getters and setters
}

@Entity
public class B extends A {
  public String b1;
  public String b2;
  public String b3;

  //much more fields
  //getters and setters
}

@Entity
public class C extends A {
  public String c;
  //that's it. no more data

  //getters and setters
}

```

I want to map these classes to 2 tables. First one will contain all of `A` and `C` data (i.e. `SINGLE_TABLE` inheritance). And the second one will contain `B`'s data and a foreign key to `A` (i.e. `JOINED` inheritance). 

I tried the solution proposed [here](https://stackoverflow.com/questions/3915026/how-to-mix-inheritance-strategies-with-jpa-annotations-and-hibernate), but it doesn't work for me. The attributes of `BB1` and `BB2` are also included into `A`.

How to implement such a strategy? Classes `A` and `C` are as different as Dog and Cat are, so I can't merge them into one class. 

Also I don't want to use table-per-hierarchy which would result in duplicating lots of `A`'s data.