【发布时间】:2018-06-13 14:06:38
【问题描述】:
从祖先获取对象有什么变化吗?我有这些实体:
@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 并通过提示注册两个图?
【问题讨论】:
-
您是否收到任何错误消息?
-
@SimonMartinelli - 没有错误信息,无法编译。它带有红色下划线并带有注释“无法解析方法'addSubgraph(javax.persistence.metamodel.SingularAttribute
)'” - 我将此添加到我的问题中
标签: java jpa criteria-api jpa-2.1