快速业务通道

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
用程序。因此,对优化不执行并排迁移。相反 ,先迁移常见配置参数,然后让负载测试指示需要引入哪些 OpenJPA 优化参数。

本文没有介绍 Hibernate 查询到 OpenJPA 的迁移,因为对于 Hibernate 应用程序来说,具有满足业 务需求的定义良好的域模型是比较普遍的。对于没有定义良好的域模型和需要许多特殊查询的应用程序, 则解决方案(如 iBatis)比对象关系映射工具(如 Hibernate 或 OpenJPA)更合适。也就是说,如果有 足够的兴趣,则后续文章可能将介绍 Hibernate 查询到 OpenJPA 的迁移。

附录:OpenJPA Java 5 注释

注释 A. 单个表继承

//Participant (base) class @Entity @Table(name="T_PRTCPNT") @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="PRTCPNT_CLASS") public class Participant implements java.io.Serializable { @Column(name="PRTCPNT_TID") @Id private Long participantId; ... } // SalesRep subclass @Entity @DiscriminatorValue(value="SALES_REP") public class SalesRep extends Participant { ... } // Administrator subclass @Entity @DiscriminatorValue(value="ADMIN") public class Administrator extends Participant { ... }

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二)(15)

时间:2011-09-18 Donald Vines

注释 B. 连接继承

// Participant (base) class @Entity @Table(name="T_PRTCPNT") @Inheritance(strategy=InheritanceType.JOINED) public class Participant implements Serializable { @Column(name="PRTCPNT_TID") @Id private Long participantId; ... } // SalesRep subclass @Entity @Table(name="T_SALESREP") @PrimaryKeyJoinColumn(name="PRTCPNT_TID") public SalesRep extends Participant { ... } // Administrator subclass @Entity @Table(name="T_ADMIN") @PrimaryKeyJoinColumn(name="PRTCPNT_TID") public Administrator extends Participant { ... }

注释 C. 可嵌入对象的一对一关系

// Employee (parent) class @Entity @Table(name="T_EMPLOYEE") public class Employee implements Serializable { @Embedded private EmployeeRecord employeeRec; ... } // EmployeeRecord (child) class @Embeddable public class EmployeeRecord implements Serializable { ... }

注释 D. 多对一关系

// Address (parent) class @Entity @Table(name="T_ADDRESS") public class Address implements Serializable { ... @Column(name="ADDR_TID") @Id private Long addressId; } // Phone (child) class @Entity @Table(name="T_PHONE") public class Phone implements Serializable { ... @ManyToOne @JoinColumn(name="ADDR_TID") private Address address; ... }

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二)(16)

时间:2011-09-18 Donald Vines

注释 E. 一对多关系

// Address (parent) entity @Entity @Table(name="T_ADDRESS") public class Address implements Serializable { ... @OneToMany(mappedBy="address", cascade=CascadeType.ALL) private Set<Phone> phones = new HashSet<Phone>(); ... @Column(name="ADDR_TID") @Id private Long addressId; } // Phone (child) entity @Entity @Table(name="T_PHONE") public class Phone implements Seria

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号