public static <S> ManagedTypeDescriptor<S> resolveSubType( ManagedTypeDescriptor<? super S> baseType, Class<S> subTypeClass, SessionFactoryImplementor sessionFactory) { // todo : validate the hierarchy-ness... final MetamodelImplementor metamodel = sessionFactory.getMetamodel(); return metamodel.managedType( subTypeClass ); } }
@Override public boolean appliesTo(Class<? super J> javaType) { return appliesTo( sessionFactory().getMetamodel().managedType( javaType ) ); } }
@Override protected ManagedType<T> locateManagedType() { return criteriaBuilder().getEntityManagerFactory().getMetamodel().managedType( treatAsType ); }
@Override protected ManagedType<T> locateManagedType() { return criteriaBuilder().getEntityManagerFactory().getMetamodel().managedType( treatAsType ); }
@Override protected ManagedType<T> locateManagedType() { return criteriaBuilder().getEntityManagerFactory().getMetamodel().managedType( treatAsType ); }
@Override protected ManagedType<T> locateManagedType() { return criteriaBuilder().getEntityManagerFactory().getMetamodel().managedType( treatAsType ); }
@Override protected ManagedType<T> locateManagedType() { return criteriaBuilder().getEntityManagerFactory().getMetamodel().managedType( treatAsType ); }
@SuppressWarnings({ "unchecked" }) public SingularAttributeJoin( CriteriaBuilderImpl criteriaBuilder, Class<X> javaType, PathSource<O> pathSource, SingularAttribute<? super O, ?> joinAttribute, JoinType joinType) { super( criteriaBuilder, javaType, pathSource, joinAttribute, joinType ); if ( Attribute.PersistentAttributeType.EMBEDDED == joinAttribute.getPersistentAttributeType() ) { this.model = (Bindable<X>) joinAttribute; } else { if ( javaType != null ) { this.model = (Bindable<X>) criteriaBuilder.getEntityManagerFactory().getMetamodel().managedType( javaType ); } else { this.model = (Bindable<X>) joinAttribute.getType(); } } }
@SuppressWarnings("unchecked") public static <T, S extends T> ManagedTypeDescriptor<S> resolveSubType( ManagedTypeDescriptor<T> baseType, String subTypeName, SessionFactoryImplementor sessionFactory) { final MetamodelImplementor metamodel = sessionFactory.getMetamodel(); if ( baseType instanceof EmbeddedTypeDescriptor<?> ) { // todo : at least validate the string is a valid sub-type of the embeddable class? return (ManagedTypeDescriptor) baseType; } final String importedClassName = metamodel.getImportedClassName( subTypeName ); if ( importedClassName != null ) { // first, try to find it by name directly.. ManagedTypeDescriptor<S> subManagedType = metamodel.entity( importedClassName ); if ( subManagedType != null ) { return subManagedType; } // it could still be a mapped-superclass try { final Class<S> subTypeClass = sessionFactory.getServiceRegistry() .getService( ClassLoaderService.class ) .classForName( importedClassName ); return metamodel.managedType( subTypeClass ); } catch (Exception ignore) { } } throw new IllegalArgumentException( "Unknown sub-type name (" + baseType.getName() + ") : " + subTypeName ); }
private <T> ManagedType<T> getManagedType(Class<T> type) { try { return sessionFactoryImplementor.getMetamodel().managedType( type ); } catch (IllegalArgumentException ignored) { // The type is not managed in the current session factory return null; } }
public static <S> ManagedTypeDescriptor<S> resolveSubType( ManagedTypeDescriptor<? super S> baseType, Class<S> subTypeClass, SessionFactoryImplementor sessionFactory) { // todo : validate the hierarchy-ness... final MetamodelImplementor metamodel = sessionFactory.getMetamodel(); return metamodel.managedType( subTypeClass ); }
@Override public boolean appliesTo(Class<? super J> javaType) { return appliesTo( sessionFactory().getMetamodel().managedType( javaType ) ); } }
@SuppressWarnings("unchecked") public static <T, S extends T> ManagedTypeDescriptor<S> resolveSubType( ManagedTypeDescriptor<T> baseType, String subTypeName, SessionFactoryImplementor sessionFactory) { final MetamodelImplementor metamodel = sessionFactory.getMetamodel(); if ( baseType instanceof EmbeddedTypeDescriptor<?> ) { // todo : at least validate the string is a valid sub-type of the embeddable class? return (ManagedTypeDescriptor) baseType; } final String importedClassName = metamodel.getImportedName( subTypeName ); if ( importedClassName != null ) { // first, try to find it by name directly.. ManagedTypeDescriptor<S> subManagedType = metamodel.entity( importedClassName ); if ( subManagedType != null ) { return subManagedType; } // it could still be a mapped-superclass try { final Class<S> subTypeClass = sessionFactory.getServiceRegistry() .getService( ClassLoaderService.class ) .classForName( importedClassName ); return metamodel.managedType( subTypeClass ); } catch (Exception ignore) { } } throw new IllegalArgumentException( "Unknown sub-type name (" + baseType.getDomainTypeName() + ") : " + subTypeName ); }
@Override @SuppressWarnings("unchecked") public QueryImplementor<R> setParameterList(String name, Collection values, Class type) { final JavaTypeDescriptor javaDescriptor = getSession().getFactory() .getTypeConfiguration() .getJavaTypeDescriptorRegistry() .getDescriptor( type ); if ( javaDescriptor == null ) { setParameterList( name, values ); } else { final AllowableParameterType paramType; if ( javaDescriptor instanceof BasicJavaDescriptor ) { paramType = getSession().getFactory() .getTypeConfiguration() .getBasicTypeRegistry() .getBasicType( type ); } else if ( javaDescriptor instanceof ManagedJavaDescriptor ) { paramType = (AllowableParameterType) getSession().getFactory().getMetamodel().managedType( type ); } else { throw new HibernateException( "Unable to determine AllowableParameterType : " + type.getName() ); } setParameterList( name, values, paramType ); } return this; }
@Override @SuppressWarnings("unchecked") public QueryImplementor<R> setParameterList(int position, Collection values, Class type) { final JavaTypeDescriptor javaDescriptor = getSession().getFactory() .getTypeConfiguration() .getJavaTypeDescriptorRegistry() .getDescriptor( type ); if ( javaDescriptor == null ) { setParameterList( position, values ); } else { final AllowableParameterType paramType; if ( javaDescriptor instanceof BasicJavaDescriptor ) { paramType = getSession().getFactory() .getTypeConfiguration() .getBasicTypeRegistry() .getBasicType( type ); } else if ( javaDescriptor instanceof ManagedJavaDescriptor ) { paramType = (AllowableParameterType) getSession().getFactory().getMetamodel().managedType( type ); } else { throw new HibernateException( "Unable to determine AllowableParameterType : " + type.getName() ); } setParameterList( position, values, paramType ); } return this; }