/** * @deprecated (since 5.2) Use {@link MetamodelImplementor#locateEntityPersister(Class)} instead. */ @Deprecated default EntityPersister locateEntityPersister(Class byClass) { return getMetamodel().locateEntityPersister( byClass ); }
/** * @deprecated (since 5.2) Use {@link MetamodelImplementor#locateEntityPersister(String)} instead. */ @Deprecated default EntityPersister locateEntityPersister(String byName) { return getMetamodel().locateEntityPersister( byName ); }
/** * @deprecated (since 5.2) Use {@link MetamodelImplementor#entityPersisters} instead. */ @Deprecated default Map<String,EntityPersister> getEntityPersisters() { return getMetamodel().entityPersisters(); }
/** * @deprecated (since 5.2) Use {@link MetamodelImplementor#collectionPersisters} instead. */ @Deprecated default Map<String, CollectionPersister> getCollectionPersisters() { return getMetamodel().collectionPersisters(); }
/** * @deprecated (since 5.2) Use {@link MetamodelImplementor#collectionPersisters} instead. * Retrieves a set of all the collection roles in which the given entity * is a participant, as either an index or an element. * * @param entityName The entity name for which to get the collection roles. * @return set of all the collection roles in which the given entityName participates. */ @Deprecated default Set<String> getCollectionRolesByEntityParticipant(String entityName) { return getMetamodel().getCollectionRolesByEntityParticipant( entityName ); }
@Override public String[] getCollectionRoleNames() { if ( sessionFactory == null ) { return ArrayHelper.toStringArray( collectionStatsMap.keySet() ); } else { return sessionFactory.getMetamodel().getAllCollectionRoles(); } }
@Override public String[] getEntityNames() { if ( sessionFactory == null ) { return ArrayHelper.toStringArray( entityStatsMap.keySet() ); } else { return sessionFactory.getMetamodel().getAllEntityNames(); } }
@Override public EntityStatisticsImpl getEntityStatistics(String entityName) { if ( sessionFactory == null ) { return null; } return entityStatsMap.computeIfAbsent( entityName, s -> new EntityStatisticsImpl( sessionFactory.getMetamodel().entityPersister( entityName ) ) ); }
@Override public CollectionStatisticsImpl getCollectionStatistics(String role) { if ( sessionFactory == null ) { return null; } return collectionStatsMap.computeIfAbsent( role, s -> new CollectionStatisticsImpl( sessionFactory.getMetamodel().collectionPersister( role ) ) ); }
@Override public void evictCollectionData(String role) { final CollectionPersister collectionDescriptor = sessionFactory.getMetamodel() .collectionPersister( role ); evictCollectionData( collectionDescriptor ); }
/** * @return Java class mapped to specified entity name. */ public static Class getEntityClass(SessionImplementor sessionImplementor, String entityName) { final EntityPersister entityPersister = sessionImplementor.getFactory().getMetamodel().entityPersister( entityName ); return entityPersister.getMappedClass(); } }
Queryable getEntityPersister(String entityName) throws QueryException { try { return (Queryable) getFactory().getMetamodel().entityPersister( entityName ); } catch (Exception e) { throw new QueryException( "persistent class not found: " + entityName ); } }
@Override public ProcedureCallImplementor<R> addSynchronizedEntityName(String entityName) { addSynchronizedQuerySpaces( getSession().getFactory().getMetamodel().entityPersister( entityName ) ); return this; }
@Override public EntityPersister getEntityPersister(String entityName, Object object) throws HibernateException { checkOpen(); if ( entityName == null ) { return getFactory().getMetamodel().entityPersister( guessEntityName( object ) ); } else { return getFactory().getMetamodel().entityPersister( entityName ).getSubclassEntityPersister( object, getFactory() ); } }
@Override public boolean containsEntity(String entityName, Serializable identifier) { final EntityPersister entityDescriptor = sessionFactory.getMetamodel().entityPersister( entityName ); final EntityDataAccess cacheAccess = entityDescriptor.getCacheAccessStrategy(); if ( cacheAccess == null ) { return false; } final Object key = cacheAccess.generateCacheKey( identifier, entityDescriptor, sessionFactory, null ); return cacheAccess.contains( key ); }
@Override public boolean containsCollection(String role, Serializable ownerIdentifier) { final CollectionPersister collectionDescriptor = sessionFactory.getMetamodel() .collectionPersister( role ); final CollectionDataAccess cacheAccess = collectionDescriptor.getCacheAccessStrategy(); if ( cacheAccess == null ) { return false; } final Object key = cacheAccess.generateCacheKey( ownerIdentifier, collectionDescriptor, sessionFactory, null ); return cacheAccess.contains( key ); }
@Test public void testEntityNames() { String[] entityNames = entityManagerFactory().getMetamodel().getAllEntityNames(); Arrays.sort( entityNames ); assertArrayEquals( entityNames, new String[]{ ElementOfCollection.class.getName(), ElementOfCollection2.class.getName(), EntityWithCollection.class.getName(), EntityWithCollection2.class.getName() } ); }
@Override public boolean isNull(Object owner, SharedSessionContractImplementor session) { if ( propertyName != null ) { final EntityPersister ownerPersister = session.getFactory().getMetamodel().entityPersister( entityName ); final Serializable id = session.getContextEntityIdentifier( owner ); final EntityKey entityKey = session.generateEntityKey( id, ownerPersister ); return session.getPersistenceContext().isPropertyNull( entityKey, getPropertyName() ); } else { return false; } }
@Test public void testMetadataNonAuditedSuperClassWithAuditParentsOverrideAuditJoinTable() { try { entityManagerFactory().unwrap( SessionFactoryImplementor.class ) .getMetamodel() .locateEntityPersister( "OAPAE_StringList" ); } catch ( UnknownEntityTypeException e ) { fail( "Expected to find an entity-persister for the string-list in the super audit type" ); } }
@Before public void prepare() { persister = sessionFactory().getMetamodel().entityPersister( Document.class ); assertTrue( persister.hasCache() ); doInHibernate( this::sessionFactory, s -> { Document document = new Document( "HiA", "Hibernate book", "Hibernate is...." ); s.persist( document ); documentID = document.id; } ); }