Рассмотрим следующий пример:
public interface Bar {
}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public DefaultBar implements Bar {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private long id;
}
@Entity
public class Foo {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private long id;
@OneToMany(cascade = CascadeType.ALL, targetEntity = DefaultBar.class)
@JoinColumn(name = "FOO_ID")
private Collection<Bar> bars;
public Collection<Bar> getBars() {
return bars;
}
}
Это будет работать нормально.НО - предположим, я сделаю подкласс Foo;скажи FooFoo.И я хочу, чтобы ассоциация «баров» тоже указала на новую реализацию Bar.Скажем:
@Entity
public NewBar extends DefaultBar {
}
А теперь я хотел бы аннотировать FooFoo, чтобы он устанавливал целевую сущность поля "bars" в класс NewBar.
@Entity
@AssociationOverride(name="bars", ???????)
public class FooFoo extends Foo {
}
Я заметил аннотацию @AssociationOverride, но на первый взгляд не позволяет переопределить целевой объект.Или это?