@Override public ClassMetadata getClassMetadata(Class entityClass) { return delegate.getClassMetadata( entityClass ); }
@Override public ClassMetadata getClassMetadata(String entityName) { return delegate.getClassMetadata( entityName ); }
private String getTableName() { SessionFactoryImplementor sessionFactoryImplementor = sessionFactory(); ClassMetadata tableWithCommentMetadata = sessionFactoryImplementor.getClassMetadata( TableWithComment.class ); return ((AbstractEntityPersister) tableWithCommentMetadata).getTableName(); }
@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 testWalkingKeyManyToOneGraphs() { // Address has a composite id with a bi-directional key-many to Person final EntityPersister ep = (EntityPersister) sessionFactory().getClassMetadata( Address.class ); MetamodelGraphWalker.visitEntity( new LoggingAssociationVisitationStrategy(), ep ); } }
@Test public void testNestedCompositeElementCollectionQueryBuilding() { doCompare( sessionFactory(), (OuterJoinLoadable) sessionFactory().getClassMetadata( Customer.class ) ); }
@Test public void testIt() { EntityPersister ep = (EntityPersister) sessionFactory().getClassMetadata(Message.class); MetamodelGraphWalker.visitEntity( new LoggingAssociationVisitationStrategy(), ep ); }
@Test public void testWalkingKeyManyToOneGraphs() { final EntityPersister ep = (EntityPersister) sessionFactory().getClassMetadata( Customer.class ); MetamodelGraphWalker.visitEntity( new LoggingAssociationVisitationStrategy(), ep ); } }
@Test public void testMappingProperties() { log.warn("Commented out test"); ClassMetadata metaData = sessionFactory().getClassMetadata( NaturalIdOnManyToOne.class ); assertTrue( "Class should have a natural key", metaData .hasNaturalIdentifier() ); int[] propertiesIndex = metaData.getNaturalIdentifierProperties(); assertTrue( "Wrong number of elements", propertiesIndex.length == 1 ); }
@Test public void testUseOfDirectReferencesInCache() throws Exception { EntityPersister persister = (EntityPersister) sessionFactory().getClassMetadata( MyReferenceData.class ); assertFalse( persister.isMutable() ); assertTrue( persister.buildCacheEntry( null, null, null, null ).isReferenceEntry() );
@Test public void testMappingProperties() { ClassMetadata metaData = sessionFactory().getClassMetadata( Citizen.class ); assertTrue( "Class should have a natural key", metaData .hasNaturalIdentifier() ); int[] propertiesIndex = metaData.getNaturalIdentifierProperties(); assertTrue( "Wrong number of elements", propertiesIndex.length == 2 ); }
@Test public void testUseOfDirectReferencesInCache() throws Exception { EntityPersister persister = (EntityPersister) sessionFactory().getClassMetadata( MyEnhancedReferenceData.class ); assertFalse( persister.isMutable() ); assertTrue( persister.buildCacheEntry( null, null, null, null ).isReferenceEntry() );
@Test public void testSimpleBuild() { EntityPersister ep = (EntityPersister) sessionFactory().getClassMetadata(Message.class); FetchStyleLoadPlanBuildingAssociationVisitationStrategy strategy = new FetchStyleLoadPlanBuildingAssociationVisitationStrategy( sessionFactory(), LoadQueryInfluencers.NONE, LockMode.NONE ); LoadPlan plan = MetamodelDrivenLoadPlanBuilder.buildRootEntityLoadPlan( strategy, ep ); assertFalse( plan.hasAnyScalarReturns() ); assertEquals( 1, plan.getReturns().size() ); Return rtn = plan.getReturns().get( 0 ); EntityReturn entityReturn = ExtraAssertions.assertTyping( EntityReturn.class, rtn ); assertNotNull( entityReturn.getFetches() ); assertEquals( 1, entityReturn.getFetches().length ); Fetch fetch = entityReturn.getFetches()[0]; EntityFetch entityFetch = ExtraAssertions.assertTyping( EntityFetch.class, fetch ); assertNotNull( entityFetch.getFetches() ); assertEquals( 0, entityFetch.getFetches().length ); LoadPlanTreePrinter.INSTANCE.logTree( plan, new AliasResolutionContextImpl( sessionFactory() ) ); }
@Test public void testCascadeBasedBuild() { EntityPersister ep = (EntityPersister) sessionFactory().getClassMetadata(Message.class); CascadeStyleLoadPlanBuildingAssociationVisitationStrategy strategy = new CascadeStyleLoadPlanBuildingAssociationVisitationStrategy( CascadingActions.MERGE, sessionFactory(), LoadQueryInfluencers.NONE, LockMode.NONE ); LoadPlan plan = MetamodelDrivenLoadPlanBuilder.buildRootEntityLoadPlan( strategy, ep ); assertFalse( plan.hasAnyScalarReturns() ); assertEquals( 1, plan.getReturns().size() ); Return rtn = plan.getReturns().get( 0 ); EntityReturn entityReturn = ExtraAssertions.assertTyping( EntityReturn.class, rtn ); assertNotNull( entityReturn.getFetches() ); assertEquals( 1, entityReturn.getFetches().length ); Fetch fetch = entityReturn.getFetches()[0]; EntityFetch entityFetch = ExtraAssertions.assertTyping( EntityFetch.class, fetch ); assertNotNull( entityFetch.getFetches() ); assertEquals( 0, entityFetch.getFetches().length ); LoadPlanTreePrinter.INSTANCE.logTree( plan, new AliasResolutionContextImpl( sessionFactory() ) ); }
public static boolean isPropertyNameSupported(String property, Class<?> clazz, Session session) { SessionFactoryImplementor factory = getSessionFactory(session); return hasProperty(property, factory.getClassMetadata(clazz)); }
Class<?> entityClass = ...; String columnName = ...; EntityManager em = ...; final SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) ((Session) em.getDelegate()).getSessionFactory(); AbstractEntityPersister persister = (AbstractEntityPersister) sessionFactory.getClassMetadata(entityClass); for (String propertyName : persister.getPropertyNames()) { for (String propertyColumnName : persister.getPropertyColumnNames(propertyName)) { if (columnName.equalsIgnoreCase(propertyColumnName)) { return propertyName; } } }
public static boolean isPropertyNameSupported(String property, Criteria criteria) { SessionFactoryImplementor factory = extractSessionFactory(criteria); CriteriaImpl criteriaImpl = getCriteriaImpl(criteria); if (criteriaImpl == null) { return false; } String entityOrClassName = criteriaImpl.getEntityOrClassName(); ClassMetadata classMetadata = factory.getClassMetadata(entityOrClassName); return classMetadata != null && hasProperty(property, classMetadata); }
@Override @SuppressWarnings("deprecation") public ClassMetadata getClassMetadata(final Class persistentClass) throws HibernateException { try { return ClassMetadataV2Adapter.adapt(getSessionFactoryV5().getClassMetadata(persistentClass), getSessionFactoryV5(), null); } catch (final PersistenceException ex) { throw HibernateExceptionAdapter.adapt(ex); } }
public void nullSafeSet( PreparedStatement st, Object value, int index, SessionImplementor 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); }
public void nullSafeSet( PreparedStatement st, Object value, int index, SessionImplementor 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); }