jpaflushaspectj.java

来自「随书光盘:精通Sping 2.0 的随书源代码」· Java 代码 · 共 33 行

JAVA
33
字号
package org.springframework.samples.petclinic.jpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.orm.jpa.SharedEntityManagerCreator;

/**
 * 
 * @author worldheart
 *
 */
@Aspect
public class JpaFlushAspectJ{
	
	private EntityManager em = null;
	
	public void setEmf(EntityManagerFactory emf) {
		this.em = SharedEntityManagerCreator.createSharedEntityManager(emf);
	}
	
	@Around("execution(* org.springframework.samples.petclinic..*(..))")
	public Object flushEm(ProceedingJoinPoint pjp) throws Throwable{
		Object obj = pjp.proceed();		
		this.em.flush();
		return obj;
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?