JPA 2持久性上下文规范



我目前正在研究官方的JPA 2最终规范。规格中的任何位置都包含以下语句吗?

实体管理器保证在单个持久性上下文中, 对于任何特定的数据库行,将只有一个对象 实例。

我要么不清楚规格,要么我找不到证明引用语句是规范的一部分的部分。

否,规范不会提供这样的保证。但我认为这是隐含的。

实际上有时将同一表映射到两个不同的实体。其中一个被视为仅阅读实体。例如,只能将实体用于报告目的,而作为优化仅包含其他实体中字段的子集。例如,可以按照以下方式完成:

@Entity
public class EntityA {    
    @Id private Integer id;
    @Lob
    byte[] tooHeavyToLoadAlways;
}
@Entity
@Table(name="EntityA")
public class EntityALightWeight {
    @Id private Integer id;
}

对于JPA,这两个实体之间没有任何联系,因此要保持护理,只有第一个修改了其中一个,而第二个则是刷新的,这是应用的责任。因此,应该仅谨慎使用,因为可以从数据库中刷新EntityLightGight,但永远不会包含同一交易中对Entitya的更改。

最新更新