什么藏品呢JPA的回报?(What collections does jpa return?)

2019-07-29 19:55发布

是否JPA(的EclipseLink在这种情况下)总是返回IndirectList其中实体有一个列表? 是确定该列表或应转换为另一种名单(也许链表)?

Answer 1:

分析

如果我们看的EclipseLink的IndirectList的API ,它说:

要使用IndirectList:声明类型IndirectList(JDK1.1)或收集/列表/矢量(JDK1.2)适当的实例变量。

当含域对象被从读取于数据库的TopLink将放置在该实例变量的IndirectList。 随着发送到IndirectList的第一条消息,内容是从数据库中收集的正常/列表/矢量行为获取的恢复。

如果我们认为IndirectList来源 ,我们会看到,所有的工作都委托给它的原始集合,就像API说。

答案

是否JPA(的EclipseLink在这种情况下)总是返回IndirectList其中实体有一个列表?

是的,它永远不会返回您指定的集合包裹着IndirectList。 因为它代表所有的内部工作包裹集合,它保留了它的工作方式。

是确定该列表或应转换为另一种名单(也许链表)?

是的,这是正常使用IndirectList。 你不转换,你刚才定义的任何类型你想收集的,不要担心IndirectList,因为它是透明管理。



Answer 2:

由于List是一个接口的JPA提供者可以自由返回任何实现。 的EclipseLink rerurns的IndirectList其中一个List使用。 这是完全正常的,因为IndirectList是一个List

为了记录或以供将来参考,它通常是使用接口与JPA最佳实践。



文章来源: What collections does jpa return?