EJB3 Persistence API标准化持久性 - 编程入门网
。
标准化O-R映射 可以使用Java元数据注释或XML实现实体的O-R映射。EJB3 JPA定义了多种用于O-R映射的注释,例如Table、SecondaryTable、Column、JoinColumn和PrimaryKeyJoinColumn。请参阅EJB3 JPA规范,以获得关于所有注释的信息。 在我们的示例中,可以使用Table注释定义实体被映射到的表,如下所示:
EJB3 JPA严重依赖于默认设置,因此如果未定义表映射,则持久性提供程序会假定此实体被映射到与实体类同名的表(在我们的示例中是DEPARTMENT)。如果实体被映射到多个表,则可以使用SecondaryTable注释。 可以使用Column注释将持久字段或属性映射到数据库列,如下所示:
这里,DNAME是持久字段名称所映射到的列的名称。如果未使用Column注释定义O-R映射,则持久性引擎会尝试将其状态保存在列中(使用与字段或属性相同的名称)。 实体继承性 EJB3 JPA支持多种实体继承性方法。它需要两种类型的继承性表映射策略:Single-table-per-entity层次结构策略和Joined-Subclass策略。最好避免使用可选的table-per-class层次结构。 Single-table-per-entity (SINGLE_TABLE)层次结构策略允许将层次结构中的所有实体映射到一个表。在我们的示例中,FullTime和Contractor扩展了Employee,所有这些都可以映射到一个名为EMP的表。换句话说,所有与Employee、FullTime和Contractor有关的数据都被存储于相同的表内。 如果使用Joined Subclass策略,则可以将公共持久数据存储在超类所映射到的表中(例如Employee),并且可以为层次结构中每个子类创建表,以便存储特定于子类的持久字段。 必须在超类中使用Inheritance注释,以指定继承类型,如以下代码所示。此示例展示了使用single-table-per-entity层次结构策略的实体层次结构。
每个子类必须指定用于该实体类型的鉴别器值,如下所示:
EJB3 Persistence API标准化持久性(4)时间:2010-12-31 bea Debu PandaEntity Manager API:用于实体操作的标准API javax.persistence.EntityManager管理实体生命周期,并公开了多个在实体上执行CRUD操作的方法。 EntityManager API在事务上下文中调用。可以在EJB容器外部(例如,从一个Web应用程序)调用它,而无需会话bean外观。 在执行任何实体操作之前,必须获取EntityManager实例。可以使用容器管理或应用程序管理的实体管理器,可以使用JNDI查找或依赖注入来获取EntityManager实例。正如其名称所暗示的,Java EE容器管理着容器管理实体管理器的生命周期。它可能主要在企业Java应用程序中使用。 可以使用PersistenceContext注入获取容器管理实体管理器实例,如下所示:
如果使用应用程序管理的实体管理器,则必须管理其生命周期。可以创建一个应用程序管理实体管理器实例,如下所示:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |