EJB 企业级应用的架构(6)





EJB实体操作的高级特性






继承映射


@DiscriminatorColumn(name="DISC", discriminatorType=STRING,length=20)//指定区别父子类的表述符的名字、类型和长度


@DiscriminatorValue("CUSTOMER")//指定本类描述符的值


以上两个标注只适用于所有类建一个表的情况。






@Inheritance(strategy=JOINED|SINGLE_TABLE|TABLE_PER_CLASS)


SINGLE_TABLE也就是所有类建一张表


JOINED也就是每个类建一个表。


TABLE_PER_CLASS只针对对具体类建表。






@MappedSuperclass//映射子类型,这个标注没有属性






@AttributeOverride 


@AttributeOverrides 






一对一关联






@OnetoOne(targetEntity="",cascade="CascadeType.ALL|MERGE|PERSIST|REFRESH|REMOVE",


          fetch="FetchType.EAGER|LAZY", mappedBy="",optional="true|false") 


cascade级联设置,


ALL对主对象的增删该操作,都会级联到子对象


PERSIST只有对主对象进行增加操作时,才级联到子对象


REMOVE只有对主对象进行删除操作时,才级联到子对象


MERGE只有对主对象进行修改操作时,才级联到子对象


REFRESH只有对主对象进更新操作时,才级联到子对象


fetch加载策略,FetchType.EAGER是采取立即加载策略,FetchType.LAZY是采用延迟加载。


mappedBy,是指定拥有关系的属性,只需要在关联的反方向(非主对象)一端指定使用mappedBy的属性。






@JoinColumn(name="",referencedColumnName="",unique="true|false",nullable="true|false",updateable="true|false",table="...")//用来指定根据类关系映射到表后和其他表关联的列名,以及关联的列名,以及本列的属性


name属性指定类中属性对应的列名,默认为属性名


referencedColumnName属性指定类对应的表中的关联引用的列的列名。


nullable属性指定类中属性对应的列是否可空,默认为true


updateable="true|false"属性指定类中该属性是否会出现在update语句中,也就是会不会被修改,默认为true可以被修改。


table属性指定类中有关联属性的列所对应的表,默认为实体类所对应的表。


@PrimaryKeyJoinColumn主键关联






例:


    引用外键


    @OneToOne(optional=false)


    @JoinColumn(name="CUSTREC_ID", unique=true, nullable=false, updatable=false)


    public CustomerRecord getCustomerRecord() { return customerRecord; }










    @OneToOne(optional=false, mappedBy="customerRecord")


    public Customer getCustomer() { return customer; }






    共享主键


    @Entity


    public class Employee {


        @Id 


@OneToOne @PrimaryKeyJoinColumn


        Integer id;


        EmployeeInfo info;


        ...


    }






    On EmployeeInfo class:






    


    @Entity


    public class EmployeeInfo {


        @Id 


        Integer id;


        ...


    }






多对多关联


@OneToMany(targetEntity="",cascade="CascadeType.ALL|MERGE|PERSIST|REFRESH|REMOVE",


          fetch="FetchType.EAGER|LAZY", mappedBy="")










    @OneToMany(cascade=ALL, mappedBy="customer")


    public Set getOrders() { return orders; }






    In Order class:






    @ManyToOne


    @JoinColumn(name="CUST_ID", nullable=false)


    public Customer getCustomer() { return customer; }






   @OneToMany(targetEntity=com.acme.Order.class, cascade=ALL,


            mappedBy="customer")


    public Set getOrders() { return orders; }






    In Order class:






    @ManyToOne


    @JoinColumn(name="CUST_ID", nullable=false)


    public Customer getCustomer() { return customer; }
购物商城项目采用PHP+mysql有以及html+css jq以及layer.js datatables bootstorap等插件等开发,采用了MVC模式,建立一个完善的电商系统,通过不同用户的不同需求,进行相应的调配和处理,提高对购买用户进行配置….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值