TGIF 伙计们,但我仍然坚持我的一个项目。我有两个接口IMasterOrder
和IOrder
. 一个人IMasterOrder
可能有一个集合IOrder
。所以可以有多个MasterOrder
实体类和Order
实现接口的实体类。
为了简化编码,我在任何地方都创建了IMasterOrder
对象IOrder
,但是当它需要指定具体类型时,我只需将IMasterOrder
对象转换为类类型。
问题是,这使得主类总是返回关于其订单的空值。我很好奇 JPA 通常如何处理多态性?
更新
很抱歉早期的混乱。其实这个问题要简单得多
实际上实体类是这样的
public class MasterOrder implements IMasterOrder {
// Relationships
@OneToOne(mappedBy = "masterOrder")
private OrderCustomFields customFields;
@OneToMany(mappedBy = "masterOrder")
private List<OrderLog> logs;
@OneToMany(mappedBy = "masterOrder")
private Collection<Order> orders;
// Fields...
而获取Master订单实体实例的finder方法是这样的
public static MasterOrder findMasterOrder(String id) {
if (id == null || id.length() == 0) return null;
return entityManager().find(MasterOrder.class, id);
}
但是,此 finder 方法中的 MasterOrder 实例返回的 customFields 以及日志和订单都为空。那么如何解决这个问题呢?提前致谢。