From 27471e055581406b8cc2feef927e336234ef1fa6 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 5 Dec 2011 21:34:44 +0000 Subject: [PATCH] added support for JPA 2.1 unwrap method on EntityManagerFactory interface --- .../orm/jpa/AbstractEntityManagerFactoryBean.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/org.springframework.orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java b/org.springframework.orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java index 555c6a51af..46f9e167a9 100644 --- a/org.springframework.orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java +++ b/org.springframework.orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java @@ -507,6 +507,13 @@ public abstract class AbstractEntityManagerFactoryBean implements // Use hashCode of EntityManagerFactory proxy. return System.identityHashCode(proxy); } + else if (method.getName().equals("unwrap")) { + // Handle JPA 2.1 unwrap method - could be a proxy match. + Class targetClass = (Class) args[0]; + if (targetClass == null || targetClass.isInstance(proxy)) { + return proxy; + } + } return this.entityManagerFactoryBean.invokeProxyMethod(method, args); } catch (InvocationTargetException ex) {