实体的状态
new新建,也就是新建的实体实例,其信息还没有持久到数据库中。
managed受管状态,也就是实体已经持久化到数据库中,并且已经和持久化上下文进行了关联。
detached分离状态,也就是与持久化上下文解除关联的实体的状态
removed删除,此时实体和持久化上下文进行了关联,但是要从数据库中删除这个实体。
new persist() 中止PersistenceContext >
——>新建————>受管========================分离
||\ < merge()
remove()\|| persist()
删除
@PersistenceContext,持久化上下文是内存中的实例和数据库间的连接枢纽,就像是一快缓冲区,但这个缓冲区是由容器来进行管理的,在这个缓冲区中的实体是处在受管理状态。
@PersistenceContext(type=PersistenceContextType.EXTENDED,unitName="PetPU")
type属性使用来标识持久化上下文的类型的,持久化上下文有两种类型事务范围和扩展的。这两种类型的持久化上下文的生命周期不同。unitName属性是指定持久化单元的名字,其值是在持久化单元定义文件中persistence-unit标签中的name属性的值。
事务范围的持久化上下文应用到无状态SessionBean,一旦事务终结,就销毁,其中的实体也会变成分离状态。
扩展的持久化上下文应用在有状态的SessionBean,只有在有状态的SessionBean被容器销毁是才会销毁持久化上下文,也就使实体一直是被管理的。
持久化单元的定义文件,这个文件是描述数据库连接和事务管理的文件
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="PetPU" transaction-type="JTA">
<!--transaction-type是事务管理的类型-->
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<!--SPI,持久化API的实现类的提供者-->
<jta-data-source>my.jdbc</jta-data-source>
<!--数据源的配置-->
<properties>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
EntityManager实体管理器,它是用来管理实体的,如果使用容器管理实体,容器就会注入EntityManager,EntityManager可以提供实体类生命周期管理,实现数据的同步,和实体的数据的查询。
实体生命周期回调方法
实体的生命周期回调方法不是通用的。
在实体类中定义时,只在方法前加标注,并且方法的返回值为void,方法为public
也就是:
@PrePersist
public void save(){}
在另外的类中写生命周期回调方法时,就需要以这个实体类为参数了
class AcountListenter{
@PrePersist
public void save(Acount a){}
}
@Entity
@EntityListenters(AcountListenter.class)
class Acount...
PostPersist
PreRemove
PostRemove
PreUpdate
PostUpdate
PostLoad
MessageDriverBeanS(MDB 消息驱动Bean)
消息驱动Bean,可以实现异步编程,也就是发送消息,而不必等待返回确认,也就像发邮件一样,只是发出,而阻塞不必等待回应。
消息驱动Bean是在接受到消息之后再通过onMessage方法进行消息的处理,也就是消息的消费者,消息驱动Bean也是无状态的。
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage tm=(TextMessage)message;
String s = null;
try {
s = tm.getText();
} catch (JMSException ex) {
ex.printStackTrace();
}
try {
tm.setText("reserve"+s);
} catch (JMSException ex) {
ex.printStackTrace();
}
}
}
分享到:
相关推荐
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...
该系统采用的技术框架主要包括EJB(Enterprise JavaBeans)3.0、Struts1.x以及SQL Server 2000数据库,同时依赖于JBOSS 4.x作为Web容器来运行。 1. **EJB3.0**: EJB(Enterprise JavaBeans)是Java EE平台的核心...
MyEclips开发工具有很强大的力量,它对JavaServlet,AJAX,JSP,Struts,JSF,Spring、Hibernate等的支持使得开发变得非常容易,同时还具备了EJB3的功能,JDBC数据库连接的功能。所以说MyEclipse是所有开源工具开发...
论文资料部分可能详述了系统的设计理念、架构选择、功能模块、实现技术以及性能评估等方面,对于理解整个项目有重要的参考价值。通过阅读论文,可以学习到如何将理论知识应用到实际开发中。 项目截图展示了系统的...
项目文档资料包括项目报告和答辩PPT,详细记录了系统的功能需求、设计思路、实现技术和测试结果。项目辅导视频则进一步解释了系统的开发过程和解决的问题,对于学习和复用该系统非常有帮助。 总结,这个基于JSP的...
项目辅导视频和文档资料是学习和实施该项目的重要资源。它们可能包含系统需求分析、设计思路、开发过程、调试技巧等内容,帮助开发者理解和复现整个项目。数据库设计文档、系统架构图、用户手册等都是确保项目成功...
7. **项目辅导视频**:这部分内容可能是对系统开发过程的记录,包括如何配置开发环境、编写代码、调试问题以及如何进行系统部署等步骤,对于学习者来说是一份宝贵的教程资源。 8. **系统部署**:项目部署涉及服务器...
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. **前端...