@Override public EntityPersister getEntityPersister(String entityName) throws MappingException { return delegate.getEntityPersister( entityName ); }
private SQLLoadable getSQLLoadable(String entityName) throws MappingException { EntityPersister persister = factory.getEntityPersister( entityName ); if ( !(persister instanceof SQLLoadable) ) { throw new MappingException( "class persister is not SQLLoadable: " + entityName ); } return (SQLLoadable) persister; }
private static EntityKey generateEntityKeyOrNull(Serializable id, SharedSessionContractImplementor s, String entityName) { if ( id == null || s == null || entityName == null ) { return null; } return s.generateEntityKey( id, s.getFactory().getEntityPersister( entityName ) ); }
private EntityMode getEntityMode(Criteria criteria, CriteriaQuery criteriaQuery) { final EntityPersister meta = criteriaQuery.getFactory().getEntityPersister( criteriaQuery.getEntityName( criteria ) ); final EntityMode result = meta.getEntityMode(); if ( ! meta.getEntityMetamodel().getTuplizer().isInstance( exampleEntity ) ) { throw new ClassCastException( exampleEntity.getClass().getName() ); } return result; }
protected void doPostInstantiate() { if ( hasSequentialSelects ) { String[] entityNames = getSubclassClosure(); for ( int i = 1; i < entityNames.length; i++ ) { Loadable loadable = (Loadable) getFactory().getEntityPersister( entityNames[i] ); if ( !loadable.isAbstract() ) { //perhaps not really necessary... String sequentialSelect = generateSequentialSelect( loadable ); sequentialSelectStringsByEntityName.put( entityNames[i], sequentialSelect ); } } } }
/** * It is only valid to define natural ids at the root of an entity hierarchy. This method makes sure we are * using the root persister. * * @param persister The persister representing the entity type. * * @return The root persister. */ protected EntityPersister locatePersisterForKey(EntityPersister persister) { return persistenceContext.getSession().getFactory().getEntityPersister( persister.getRootEntityName() ); }
private Constructor getConstructor() { Type studentNametype = sessionFactory() .getEntityPersister( Student.class.getName() ) .getPropertyType( "name" ); return ReflectHelper.getConstructor( Student.class, new Type[] {StandardBasicTypes.LONG, studentNametype} ); } };
protected boolean supportsBulkInsertIdGeneration(Class entityClass) { EntityPersister persister = sessionFactory().getEntityPersister( entityClass.getName() ); IdentifierGenerator generator = persister.getIdentifierGenerator(); return BulkInsertionCapableIdentifierGenerator.class.isInstance( generator ) && BulkInsertionCapableIdentifierGenerator.class.cast( generator ).supportsBulkInsertionIdentifierGeneration(); }
protected EntityPersister getPersister( final LoadEvent event ) { if ( event.getInstanceToLoad() != null ) { //the load() which takes an entity does not pass an entityName event.setEntityClassName( event.getInstanceToLoad().getClass().getName() ); return event.getSession().getEntityPersister( null, event.getInstanceToLoad() ); } else { return event.getSession().getFactory().getEntityPersister( event.getEntityClassName() ); } }
private AssociationType determineAssociationType(Class<?> entityClass, String path) { OuterJoinLoadable entityPersister = (OuterJoinLoadable) sessionFactory().getEntityPersister( entityClass.getName() ); int index = ( (UniqueKeyLoadable) entityPersister ).getPropertyIndex( path ); return (AssociationType) entityPersister.getSubclassPropertyType( index ); }
private org.hibernate.FetchMode determineFetchMode(Class<?> entityClass, String path) { OuterJoinLoadable entityPersister = (OuterJoinLoadable) sessionFactory().getEntityPersister( entityClass.getName() ); int index = ( (UniqueKeyLoadable) entityPersister ).getPropertyIndex( path ); return entityPersister.getFetchMode( index ); }
@Test public void testOracleSequenceOrder() { EntityPersister persister = sessionFactory().getEntityPersister( SequenceIdRevisionEntity.class.getName() ); IdentifierGenerator generator = persister.getIdentifierGenerator(); Assert.assertTrue( OrderedSequenceGenerator.class.isInstance( generator ) ); OrderedSequenceGenerator seqGenerator = (OrderedSequenceGenerator) generator; Assert.assertTrue( "Oracle sequence needs to be ordered in RAC environment.", seqGenerator.sqlCreateStrings( getDialect() )[0].toLowerCase().endsWith( " order" ) ); } }
@Override public void nullSafeSet( PreparedStatement st, Object value, int index, SharedSessionContractImplementor session) throws HibernateException, SQLException { String entityName = session.getFactory().getClassMetadata((Class) value).getEntityName(); Loadable entityPersister = (Loadable) session.getFactory().getEntityPersister(entityName); underlyingType.nullSafeSet(st, entityPersister.getDiscriminatorValue(), index, session); }
@Test public void testTypeSelection() { int index = sessionFactory().getEntityPersister( MaterializedBlobEntity.class.getName() ).getEntityMetamodel().getPropertyIndex( "theBytes" ); Type type = sessionFactory().getEntityPersister( MaterializedBlobEntity.class.getName() ).getEntityMetamodel().getProperties()[index].getType(); assertEquals( MaterializedBlobType.INSTANCE, type ); }
@Test @TestForIssue( jiraKey = "HHH-10360") public void testNaturalIdNullability() { final EntityPersister persister = sessionFactory().getEntityPersister( Account.class.getName() ); final int propertyIndex = persister.getEntityMetamodel().getPropertyIndex( "shortCode" ); // the natural ID mapped as non-nullable assertFalse( persister.getPropertyNullability()[propertyIndex] ); }
@Test @TestForIssue( jiraKey = "HHH-10360") public void testNaturalIdNullability() { final EntityPersister persister = sessionFactory().getEntityPersister( User.class.getName() ); final int propertyIndex = persister.getEntityMetamodel().getPropertyIndex( "userName" ); // nullability is not specified, so it should be non-nullable by hbm-specific default assertFalse( persister.getPropertyNullability()[propertyIndex] ); }
@Test @TestForIssue( jiraKey = "HHH-10360") public void testNaturalIdNullability() { final EntityPersister persister = sessionFactory().getEntityPersister( User.class.getName() ); final EntityMetamodel entityMetamodel = persister.getEntityMetamodel(); // nullability is not specified, so it should be nullable by annotations-specific default assertTrue( persister.getPropertyNullability()[entityMetamodel.getPropertyIndex( "uid" )] ); }
@Test public void testCompleteSequenceEntity() { final EntityPersister persister = sessionFactory().getEntityPersister( CompleteSequenceEntity.class.getName() ); IdentifierGenerator generator = persister.getIdentifierGenerator(); assertTrue( SequenceStyleGenerator.class.isInstance( generator ) ); SequenceStyleGenerator seqGenerator = (SequenceStyleGenerator) generator; assertEquals( 1000, seqGenerator.getDatabaseStructure().getInitialValue() ); assertEquals( 52, seqGenerator.getDatabaseStructure().getIncrementSize() ); assertFalse( NoopOptimizer.class.isInstance( seqGenerator.getOptimizer() ) ); }
@Test public void checkConverterMutabilityPlans() { final EntityPersister persister = sessionFactory().getEntityPersister( SomeEntity.class.getName() ); assertFalse( persister.getPropertyType( "number" ).isMutable() ); assertTrue( persister.getPropertyType( "name" ).isMutable() ); }
@Test public void testAutoEntity() { final EntityPersister persister = sessionFactory().getEntityPersister( AutoEntity.class.getName() ); IdentifierGenerator generator = persister.getIdentifierGenerator(); assertTrue( SequenceStyleGenerator.class.isInstance( generator ) ); SequenceStyleGenerator seqGenerator = (SequenceStyleGenerator) generator; assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, seqGenerator.getDatabaseStructure().getName() ); assertEquals( SequenceStyleGenerator.DEFAULT_INITIAL_VALUE, seqGenerator.getDatabaseStructure().getInitialValue() ); assertEquals( SequenceStyleGenerator.DEFAULT_INCREMENT_SIZE, seqGenerator.getDatabaseStructure().getIncrementSize() ); }