public SessionFactoryImplementor resolveSessionFactory() { return typeConfiguration.getSessionFactory(); }
private EntityPersister guessEntityPersister(Object object) { if ( scope == null ) { return null; } String entityName = null; // this code is largely copied from Session's bestGuessEntityName Object entity = object; if ( entity instanceof HibernateProxy ) { final LazyInitializer initializer = ( (HibernateProxy) entity ).getHibernateLazyInitializer(); if ( initializer.isUninitialized() ) { entityName = initializer.getEntityName(); } entity = initializer.getImplementation(); } if ( entityName == null ) { for ( EntityNameResolver resolver : scope.getTypeConfiguration().getSessionFactory().getMetamodel().getEntityNameResolvers() ) { entityName = resolver.resolveEntityName( entity ); if ( entityName != null ) { break; } } } if ( entityName == null ) { // the old-time stand-by... entityName = object.getClass().getName(); } return scope.getTypeConfiguration().getSessionFactory().getMetamodel().entityPersister( entityName ); }
private Class determineAssociatedEntityClass() { final String entityName = getAssociatedEntityName(); try { return ReflectHelper.classForName( entityName ); } catch (ClassNotFoundException cnfe) { return this.scope.getTypeConfiguration().getSessionFactory().getMetamodel().entityPersister( entityName ). getEntityTuplizer().getMappedClass(); } }
@Override public <S extends J> ManagedTypeDescriptor<S> findSubType(Class<S> subType) { return DomainModelHelper.resolveSubType( this, subType, typeConfiguration.getSessionFactory() ); }
@Override public SubGraphImplementor<J> makeSubGraph() { return new SubGraphImpl<>( this, true, typeConfiguration.getSessionFactory() ); }
@Override public <S extends J> ManagedTypeDescriptor<S> findSubType(String subTypeName) { return DomainModelHelper.resolveSubType( this, subTypeName, typeConfiguration.getSessionFactory() ); }
@Override @SuppressWarnings("unchecked") public <S extends J> SubGraphImplementor<S> makeSubGraph(Class<S> subType) { return new SubGraphImpl( this, true, getTypeConfiguration().getSessionFactory() ); }
@Override @SuppressWarnings("unchecked") public <S extends J> SubGraphImplementor<S> makeSubGraph(Class<S> subType) { return new SubGraphImpl( this, true, getTypeConfiguration().getSessionFactory() ); }
@Override @SuppressWarnings("unchecked") public <S extends J> SubGraphImplementor<S> makeSubGraph(Class<S> subType) { if ( ! getBindableJavaType().isAssignableFrom( subType ) ) { throw new IllegalArgumentException( String.format( "Entity type [%s] cannot be treated as requested sub-type [%s]", getName(), subType.getName() ) ); } return new SubGraphImpl( this, true, getTypeConfiguration().getSessionFactory() ); }
@Override public String render() { if ( dialect == null ) { dialect = typeConfiguration.getSessionFactory().getJdbcServices().getDialect(); } return render( dialect ); }
@Override public void setPropertyValue(Object object, int i, Object value) { getPersistentAttributes().get( i ).getPropertyAccess().getSetter().set( object, value, getTypeConfiguration().getSessionFactory() ); }
@Override public String render(String identificationVariable) { if ( dialect == null ) { dialect = typeConfiguration.getSessionFactory().getJdbcServices().getDialect(); } if ( identificationVariable != null ) { return identificationVariable + '.' + render( dialect ); } return render( dialect ); }
/** * Set the given values to the mapped properties of the given object */ default void setPropertyValues(Object object, Object[] values) { // todo (6.0) : hook in BytecodeProvider's ReflectionOptimizer (if one) for this managed-type visitStateArrayContributors( contributor -> { final Object value = values[ contributor.getStateArrayPosition() ]; contributor.getPropertyAccess().getSetter().set( object, value, getTypeConfiguration().getSessionFactory() ); } ); }