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; }
分享到:
相关推荐
Java认证是全球认可的Java程序员技能评估标准,2009年的Java认证辅导资料涵盖了当时最新的Java技术,旨在帮助考生顺利通过考试并提升其Java编程能力。这些资料可能包括了Oracle Certified Associate (OCA), Oracle ...
JavaEE(Java Platform, Enterprise Edition)是一个用于开发企业级应用程序的框架,它提供了多种服务和组件模型,如Servlet、JSP、EJB等,以支持分布式、多层架构的应用程序开发。在这个辅导员管理项目中,JavaEE...
### 最新系统分析师考试复习资料知识点汇总 #### 一、开发技术:语言与平台 - **JavaBean组件模型特点** - JavaBean 是一种 Java 类,它遵循特定的编写规范,通常用来封装业务逻辑或数据。 - **封装性**:...
Curso_Java Curso de Java,POO,JDBC,Servlets,JavaEE,Web服务,JSF,EJB,JPA,PrimeFaces,Hibernate,Spring,Struts-全球辅导公司。乌巴尔多·阿科斯塔(Ubaldo Acosta)
在这个系统中,模型可能由JavaBeans或EJB实现,视图主要由JSP页面完成,控制器可能是自定义的Servlet或Spring MVC的DispatcherServlet。 3. **数据库管理**:系统中包含数据库文件,可能是MySQL、Oracle或其他关系...
这个压缩包显然包含了针对该考试的复习资料,包括考试说明、理论题复习题以及操作题复习题。以下将详细阐述Java编程语言的一些核心知识点,以及如何根据这些文件进行有效的备考。 1. **基础语法**:作为Java学习的...
本压缩包包含的“高技能鉴定辅导材料java”很可能是针对Java Web开发人员的考试复习资料,旨在帮助他们掌握核心概念、技术和最佳实践。 1. **Servlet与JSP**: - Servlet是Java服务器端编程的基础,它扩展了Web...
系统的主要功能是教师的工作量统计,这包括但不限于记录教师的教学任务(如课程数量、学生人数)、科研活动、辅导任务等。系统可能提供数据录入界面,让教师自行申报,也可以自动化抓取相关数据,如教务系统中的...
MyEclips开发工具有很强大的力量,它对JavaServlet,AJAX,JSP,Struts,JSF,Spring、Hibernate等的支持使得开发变得非常容易,同时还具备了EJB3的功能,JDBC数据库连接的功能。所以说MyEclipse是所有开源工具开发...
论文资料部分可能详述了系统的设计理念、架构选择、功能模块、实现技术以及性能评估等方面,对于理解整个项目有重要的参考价值。通过阅读论文,可以学习到如何将理论知识应用到实际开发中。 项目截图展示了系统的...
项目文档资料包括项目报告和答辩PPT,详细记录了系统的功能需求、设计思路、实现技术和测试结果。项目辅导视频则进一步解释了系统的开发过程和解决的问题,对于学习和复用该系统非常有帮助。 总结,这个基于JSP的...
项目辅导视频和文档资料是学习和实施该项目的重要资源。它们可能包含系统需求分析、设计思路、开发过程、调试技巧等内容,帮助开发者理解和复现整个项目。数据库设计文档、系统架构图、用户手册等都是确保项目成功...
6. **项目文档**:项目文档资料应包含详细的设计文档、需求分析、系统架构图、用例图、类图等,这些都是软件开发过程中的重要组成部分,有助于理解系统的功能和实现方式。 7. **项目辅导视频**:这部分内容可能是对...
2. **轻量级**:与EJB容器相比,Spring的IOC容器更轻便,适合各种规模的项目。 3. **技术整合**:Spring集成了多种技术和框架,如ORM、logging、J2EE等,简化了开发工作。 4. **模块化设计**:开发者可以根据需求...
这份《2013年软考高级信息系统项目管理师考试计算机部分考点汇总表资料》是一份针对信息系统项目管理师考试的辅导材料,涵盖了计算机领域的多个知识点,其中涉及了信息系统的基础知识、软件工程、面向对象方法、各种...
- **项目辅导视频、论文等资料**:可能包含项目开发过程的教程、设计文档、相关论文等,帮助理解和学习项目。 - **数据库**:包含数据库脚本或已有的数据库文件,用于恢复和操作系统的数据环境。 - **源代码**:...
它包含了Servlet、JSP、EJB等核心组件,以及Spring、Hibernate等开源框架,用于处理业务逻辑、数据持久化和视图展示。 2. **SSH框架**:SSH是Struts、Spring、Hibernate三个开源框架的组合。Struts处理MVC模式中的...
4. **EJB(Enterprise JavaBeans)**:虽然JSP可以处理简单的业务逻辑,但复杂的商业应用可能需要EJB来提供更高级的服务,如事务管理、安全性和分布式服务。不过,现代Web应用更倾向于使用轻量级框架,如Spring,以...
4. **EJB或Spring框架**:虽然未明确提及,但为了提高代码复用性和模块化,可能使用了Enterprise JavaBeans(EJB)或Spring框架。这些框架可以简化事务管理、对象持久化和依赖注入,提升系统的可维护性。 5. **前端...
6. **安全机制**:系统需要登录功能,确保只有授权的辅导员和教务人员能查看和处理请假申请。这可能涉及到session管理、角色权限控制(如Spring Security或JAAS)。 7. **MVC(Model-View-Controller)模式**:作为...