Skip to content

LocalSessionFactoryBean (hibernate5) does not correctly pass custom ClassLoader to Hibernate [SPR-13879] #18452

Closed
@spring-projects-issues

Description

@spring-projects-issues

Jon Mann opened SPR-13879 and commented

We are using hibernate5.LocalSessionFactoryBean (with Hibernate v5.0.5) and having difficulties passing a custom ClassLoader to Hibernate.

In particular LocalSessionFactoryBuilder uses the following code in its constructor:

getProperties().put(AvailableSettings.CLASSLOADERS, Collections.singleton(resourceLoader.getClassLoader()));

But if you check the usages of AvailableSettings.CLASSLOADERS in Hibernate 5 you will find that it is only used by the legacy and unused method fromConfigSettings() in ClassLoaderServiceImpl. Therefore I believe this code effectively does nothing.

I believe that LocalSessionFactoryBuilder should actually pass the ClassLoader to the parent Hibernate Configuration constructor using something like this:

super(new BootstrapServiceRegistryBuilder().applyClassLoader(resourceLoader.getClassLoader()).build())

Hopefully this makes some sense.

Thanks to the Spring team for a great product.


Affects: 4.2.4

Issue Links:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions