есть ли какие-либо изменения, чтобы получить объект от предка?У меня есть эти сущности:
@Entity
@Table(name = "SPORT")
@DiscriminatorColumn(name = "sport_type", discriminatorType = DiscriminatorType.STRING, length = 32)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Sport implements Serializable {
@Column(name = "sport_type", insertable = false, updatable = false)
private String sportType;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
@JoinColumn(name = "HEAD_ID", referencedColumnName = "IDENT")
@ToStringExclude
protected Headquaters headquaters;
}
@Entity
@DiscriminatorValue(Constants.COST_REPORT_CODE)
public class HandSport extends Sport {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COST_TRADE_ID", referencedColumnName = "TRADE_ID")
private Playground Playground;
}
из этих сущностей Я сгенерировал эту метамодель
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(HandSport.class)
public abstract class HandSport_ extends com.test.entity.Sport_ {
public static volatile SingularAttribute<HandSport, Playground> playground;
}
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(Sport.class)
public abstract class Sport_ {
public static volatile SingularAttribute<Sport, Headquaters> headquaters;
public static volatile SingularAttribute<Sport, String> id;
}
И теперь я могу выбрать только игровую площадку:
EntityGraph<HandSport> fetchGraph = entityManager.createEntityGraph(HandSport.class);
fetchGraph.addSubgraph(HandSport_.playground);
select.distinct(true);
TypedQuery<HandSport> typedQuery = entityManager.createQuery(select)
.setHint("javax.persistence.loadgraph", fetchGraph);
Почему яне могу добавить
fetchGraph.addSubgraph(Sport_.headquters);
Если я это сделаю, я вижу ошибку компиляции:
"Cannot resolve method 'addSubgraph(javax.persistence.metamodel.SingularAttribute<com.test.entity.Sport, com.test.entity.Headquateres>)'"
Есть ли какие-либо изменения для получения значений от предка?Или можно создать второй FetchGraph и зарегистрировать два графика по подсказке?