hibernate/hibernate-orm · error · PersistentObjectException
Uninitialized proxy passed to persist()
Error message
Uninitialized proxy passed to persist()
What it means
Error "Uninitialized proxy passed to persist()" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/event/internal/DefaultPersistEventListener.java:65
@Override
public void onPersist(@Nonnull PersistEvent event) {
onPersist( event, PersistContext.create() );
}
/**
* Handle the given persist event.
*
* @param event The persist event to be handled
*
*/
@Override
public void onPersist(@Nonnull PersistEvent event, @Nonnull PersistContext createCache) {
final Object object = event.getObject();
final var lazyInitializer = extractLazyInitializer( object );
if ( lazyInitializer != null ) {
if ( lazyInitializer.isUninitialized() ) {
if ( lazyInitializer.getSession() != event.getSession() ) {
throw new PersistentObjectException( "Uninitialized proxy passed to persist()" );
}
}
else {
persist( event, createCache, lazyInitializer.getImplementation() );
}
}
else {
persist( event, createCache, object );
}
}
private void persist(@Nonnull PersistEvent event, @Nonnull PersistContext createCache, @Nonnull Object entity) {
final var source = event.getSession();
final var entityEntry = source.getPersistenceContextInternal().getEntry( entity );
final String entityName = entityName( event, entity, entityEntry );
switch ( getEntityState( entity, entityName, entityEntry, source, true ) ) {
case DETACHED:
throw new PersistentObjectException( "Detached entity passed to persist: "View on GitHub (pinned to fad1729dce)
Solutions
- Initialize the proxy (Hibernate.initialize) or load the real entity before calling persist().
- Use persist() only on new transient instances; use merge() for existing/possibly-proxied entities.
When it happens
Trigger: Thrown when an uninitialized proxy is passed to an operation that requires the real, initialized instance.
Common situations: Typical situations: calling persist()/evict() with a lazy proxy from getReference(); session closed before the proxy was initialized.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/e3db7f7a76169c73.
Report an issue: GitHub.