`
love4ajax
  • 浏览: 12192 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

[原创]利用Hibernate监听器,自动删除附件表对应的物理文件

阅读更多
问题的提出:
我们太懒了,通常从数据表中删除一条附件信息后,没有删除磁盘中对应的物理文件。
实现方案:
1、写一个标识接口,用来申明该实体关联有物理文件。
/**
 * @author Li Tonggang
 * 该接口通常被实体对象继承,标识对象与文件系统有关联,
 * 比如:附件对象
 * 该接口通常和AttachDelListener协作删除文理文件。
 */
public interface FSEntitySupport {
	
	/**
	 * @return 文件的绝对路径
	 */
	public String[] getFilePath();
	
}

2、写一个Hibernate删除事件监听器,通过标识接口FSEntitySupport判断当前实体,是否需要删除物理文件操作。
/**
 * @author Li Tonggang
 * 删除附件对象时,自动删除与之关联的物理文件。
 * 实体须实现接口 FSEntitySupport
 */
public class AttachDelListener implements PostDeleteEventListener {

	public void onPostDelete(PostDeleteEvent arg0) {
		Object entity = arg0.getEntity();
		if(entity instanceof FSEntitySupport){
			FSEntitySupport fsEntity = (FSEntitySupport)entity;
			String[] pathArray = fsEntity.getFilePath();
			if(pathArray == null)
				return;
			for(String path : pathArray){
				File file = new File(path);
				if(file.exists())
					file.delete();
			}
			
		}
	}
	
}

3、注册监听器

<property name="eventListeners">
		   <map>
		    <entry key="post-delete">
		     <bean class="common.hibernate.AttachDelListener"/>
		    </entry>
		   </map>
		  </property>
分享到:
评论

相关推荐

    Hibernate 映射文件自动生成

    【描述】虽然描述为空,但我们可以推测,这篇博文可能讲述了如何利用某些工具或方法自动化生成Hibernate的映射文件,从而提高开发效率并减少错误。 【标签】:“源码”和“工具”表明这篇内容可能涉及到具体的代码...

    Hibernate通过配置文件自动生成表

    本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识点。 **一、Hibernate概述** Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,...

    利用hibernate中的SchemaExport生成数据表

    本篇文章将详细介绍如何利用Hibernate中的`SchemaExport`工具来自动生成数据库表,以此来简化数据库设计过程,提高开发效率。 首先,我们需要了解Hibernate的逆向工程(Reverse Engineering)。在传统的开发流程中...

    Hibernate自动生成表demo

    在本教程中,我们将探讨如何利用Hibernate的注解功能,通过实体类自动生成数据库中的表。这极大地简化了数据库建模过程,同时也减少了手动编写SQL语句的工作量。 首先,我们需要理解Hibernate的核心概念。ORM框架如...

    Hibernate自动生成配置文件

    接下来,我们将利用Hibernate的逆向工程功能来自动生成配置文件。选择数据表`t_user`,右键点击后选择“Hibernate Reverse Engineering”。在向导中,配置Hibernate的实体类名称、包名等信息,然后指定主键生成策略...

    自动生成hibernate映射文件和实体类

    4. 在使用 MyEclipse 自动生成 Hibernate 映射文件和实体类时,需要创建数据库连接和相应的表,然后选择需要添加 Hibernate 映像文件的工程,最后进行反转工程操作。 使用 MyEclipse 自动生成 Hibernate 映射文件和...

    Hibernate自动创建表结构示例--Oracle

    总之,本示例展示了如何利用Hibernate ORM框架与Oracle数据库协同工作,自动化处理数据库表的创建,这对于简化开发流程、提高开发效率具有重要意义。理解并熟练掌握这一技术,对于Java开发者来说是提升技能的重要...

    hibernate自动生成数据库文件

    7. **安全性与最佳实践**:虽然使用Hibernate自动生成数据库文件可以快速启动项目,但要注意这可能会导致数据丢失,因为`create`操作会删除已有数据。在生产环境中,通常推荐使用`update`或`validate`,并且在实际...

    Hibernate自动生成持久化类和映射文件

    "Hibernate自动生成持久化类和映射文件"这个话题主要涉及如何利用myEclipse这款集成开发环境的反向工程功能,快速地根据数据库中的表结构生成对应的Hibernate配置文件、映射文件以及持久化类。下面将详细介绍这一...

    代码自动生成工具 hibernate配置文件工具 MagicalTools

    通过简单的界面操作,开发者可以选择数据库表,工具会自动分析表结构,生成对应的Java实体类,同时创建相应的Hibernate配置文件,如`hibernate.cfg.xml`和`mapping.xml`。这极大地减少了手动编写代码的时间,确保了...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    Hibernate 反向工程是指使用 Hibernate 工具将数据库表结构反向生成对应的 Entity 类和 hbm.xml 文件的过程。这种方法可以大大简化开发过程,提高开发效率。 二、 Hibernate 反向工程的步骤 1. 切换到 MyEclipse ...

    myeclipse自动生成hibernate映射文件

    Hibernate映射文件是XML格式的文件,它定义了数据库表与Java实体类之间的对应关系,包括字段映射、主键策略、关联关系等。映射文件让开发者无需编写SQL语句,就能通过Java对象进行数据库操作。 2. **MyEclipse ...

    用myeclipse自动生成hibernate配置文件

    - 完成向导,MyEclipse将自动生成`hibernate.cfg.xml`配置文件、对应的Java Bean类(POJO)以及`.hb.xml`映射文件。 6. **测试代码**: - 创建一个测试类,例如`HibernateTest`,使用以下代码来验证配置是否正确...

    自动生成Hibernate类文件和hbm.xml文件

    通过myeclipse自动生成Hibernate类文件和hbm.xml文件,链接数据库库自动生成

    HIBERNATE:Hibernate 学习一--注解方式自动建表

    通过这些注解和配置,开发者可以快速地建立Java对象与数据库表之间的映射,并利用Hibernate自动创建数据库表,大大提高了开发效率。在实际项目中,结合Spring等框架,可以实现更高效、便捷的数据库操作。 在提供的...

    hibernate代码自动生成

    而“Hibernate代码自动生成”则是指利用Hibernate的工具或者第三方库,自动生成与数据库表对应的Java实体类、DAO(数据访问对象)层、Service层以及相关的SQL语句,从而减少手动编写这些重复性代码的工作量,提高...

    Hibernate自动生成

    其中,Hibernate的自动生成功能是其一大亮点,它能够帮助开发者快速构建与数据库表对应的Java实体类以及DAO(Data Access Object)层的接口和实现,极大地提高了开发效率。本文将详细介绍如何在MyEclipse环境中利用...

    hibernate映射文件生成数据库

    本文将深入探讨如何利用Hibernate的映射文件来生成数据库,以此提高开发效率并减少手动创建数据库表的工作量。 一、Hibernate映射文件概述 Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java...

    hibernate自动生成dao,配置文件等的学习笔记,在myeclipse下实现

    在本教程中,我们将探讨如何在MyEclipse环境下利用Hibernate工具自动生成DAO(数据访问对象)、POJO(Plain Old Java Object)以及配置文件。 首先,我们需要确保MyEclipse已经集成了Hibernate支持。这可以通过右键...

Global site tag (gtag.js) - Google Analytics