From a7e29dc99d388357284dc6be204f8cd3b8881382 Mon Sep 17 00:00:00 2001 From: GYWang Date: Wed, 8 Feb 2017 17:43:23 +0800 Subject: [PATCH] [#5845] Use the correct ClassLoader to load the jpa entity classes defined in the user project --- .../src/main/java/org/jooq/util/jpa/JPADatabase.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jOOQ-meta-extensions/src/main/java/org/jooq/util/jpa/JPADatabase.java b/jOOQ-meta-extensions/src/main/java/org/jooq/util/jpa/JPADatabase.java index 4535b32bf4..c8cb3ef0b8 100644 --- a/jOOQ-meta-extensions/src/main/java/org/jooq/util/jpa/JPADatabase.java +++ b/jOOQ-meta-extensions/src/main/java/org/jooq/util/jpa/JPADatabase.java @@ -124,9 +124,13 @@ public class JPADatabase extends H2Database { new ClassPathScanningCandidateComponentProvider(true); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); + + // [#5845] Use the correct ClassLoader to load the jpa entity classes defined in the user project + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + for (String pkg : packages.split(",")) for (BeanDefinition def : scanner.findCandidateComponents(defaultIfBlank(pkg, "").trim())) - metadata.addAnnotatedClass(Class.forName(def.getBeanClassName())); + metadata.addAnnotatedClass(Class.forName(def.getBeanClassName(), true, cl)); // This seems to be the way to do this in idiomatic Hibernate 5.0 API // See also: http://stackoverflow.com/q/32178041/521799