Java 类javax.persistence.metamodel.PluralAttribute 实例源码

项目:oma-riista-web    文件:CriteriaUtils.java   
@Override
public Method load(final PluralAttribute<?, ?, ?> attribute) {
    final Class<?> declaringClass = attribute.getDeclaringType().getJavaType();
    final String getterName = getGetterName(attribute);
    final Method readMethod = BeanUtils.findDeclaredMethod(declaringClass, getterName);

    if (readMethod == null) {
        throw new IllegalStateException(String.format(
                "Class %s does not declare method named '%s'",
                declaringClass.getName(),
                getterName));
    }

    readMethod.setAccessible(true);
    return readMethod;
}
项目:oma-riista-web    文件:CriteriaUtils.java   
@Nonnull
static <T, U, C extends Collection<U>> Function<T, C> jpaCollection(
        @Nonnull final PluralAttribute<? super T, C, U> attribute) {

    Objects.requireNonNull(attribute);

    final Class<C> collectionType = attribute.getJavaType();

    try {
        final Method readMethod = ENTITY_COLLECTION_GETTERS.get(attribute);

        return obj -> invokeAndCast(readMethod, obj, collectionType);

    } catch (final ExecutionException e) {
        throw new RuntimeException(e);
    }
}
项目:oma-riista-web    文件:CriteriaUtils.java   
public static <T, U, C extends Collection<U>> void updateInverseCollection(
        @Nonnull final PluralAttribute<? super T, C, U> inverseAttribute,
        @Nonnull final U entity,
        @Nullable final T currentAssociation,
        @Nullable final T newAssociation) {

    Objects.requireNonNull(inverseAttribute, "inverseAttribute is null");
    Objects.requireNonNull(entity, "entity is null");

    final Function<T, C> fn = getCollectionIfInitialized(inverseAttribute);

    final C oldCollection = fn.apply(currentAssociation);

    if (oldCollection != null) {
        oldCollection.remove(entity);
    }

    final C newCollection = fn.apply(newAssociation);

    if (newCollection != null) {
        newCollection.add(entity);
    }
}
项目:oma-riista-web    文件:CriteriaUtils.java   
@SuppressWarnings("unchecked")
@Nonnull
public static <T, U> Join<T, U> join(
        @Nonnull final From<?, T> from, @Nonnull final PluralAttribute<? super T, ?, U> attribute) {

    Objects.requireNonNull(from, "from is null");
    Objects.requireNonNull(attribute, "attribute is null");

    if (attribute instanceof CollectionAttribute) {
        return from.join((CollectionAttribute<T, U>) attribute);
    }
    if (attribute instanceof SetAttribute) {
        return from.join((SetAttribute<T, U>) attribute);
    }
    if (attribute instanceof ListAttribute) {
        return from.join((ListAttribute<T, U>) attribute);
    }
    if (attribute instanceof MapAttribute) {
        return from.join((MapAttribute<T, ?, U>) attribute);
    }

    // Should never end up here.
    throw new IllegalArgumentException();
}
项目:jhipster-stormpath-example    文件:CacheConfiguration.java   
@Bean
public CacheManager cacheManager(JHipsterProperties jHipsterProperties) {
    log.debug("Starting Ehcache");
    cacheManager = net.sf.ehcache.CacheManager.create();
    cacheManager.getConfiguration().setMaxBytesLocalHeap(jHipsterProperties.getCache().getEhcache().getMaxBytesLocalHeap());
    log.debug("Registering Ehcache Metrics gauges");
    Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities();
    for (EntityType<?> entity : entities) {
        String name = entity.getName();
        if (name == null || entity.getJavaType() != null) {
            name = entity.getJavaType().getName();
        }
        Assert.notNull(name, "entity cannot exist without an identifier");
        reconfigureCache(name, jHipsterProperties);
        for (PluralAttribute pluralAttribute : entity.getPluralAttributes()) {
            reconfigureCache(name + "." + pluralAttribute.getName(), jHipsterProperties);
        }
    }
    EhCacheCacheManager ehCacheManager = new EhCacheCacheManager();
    ehCacheManager.setCacheManager(cacheManager);
    return ehCacheManager;
}
项目:jpasecurity    文件:TypeDefinition.java   
public Attribute<?, ?> filter() {
    Type<?> type = forModel(metamodel).filter(rootType);
    Attribute<?, ?> result = null;
    for (int i = 1; i < pathElements.length; i++) {
        if (!(type instanceof ManagedType)) {
            throw new PersistenceException("Cannot navigate through simple property "
                    + pathElements[i] + " of type " + type.getJavaType());
        }
        result = ((ManagedType<?>)type).getAttribute(pathElements[i]);
        if (result.isCollection()) {
            type = ((PluralAttribute<?, ?, ?>)result).getElementType();
        } else {
            type = ((SingularAttribute<?, ?>)result).getType();
        }
    }
    return result;
}
项目:jpasecurity    文件:MappingEvaluator.java   
public boolean visitJoin(Node node, Set<TypeDefinition> typeDefinitions) {
    if (node.jjtGetNumChildren() != 2) {
        return false;
    }
    Node pathNode = node.jjtGetChild(0);
    Node aliasNode = node.jjtGetChild(1);
    Alias rootAlias = new Alias(pathNode.jjtGetChild(0).toString());
    Class<?> rootType = getType(rootAlias, typeDefinitions);
    ManagedType<?> managedType = forModel(metamodel).filter(rootType);
    for (int i = 1; i < pathNode.jjtGetNumChildren(); i++) {
        Attribute<?, ?> attribute = managedType.getAttribute(pathNode.jjtGetChild(i).toString());
        if (attribute.getPersistentAttributeType() == PersistentAttributeType.BASIC) {
            throw new PersistenceException("Cannot navigate through basic property "
                    + pathNode.jjtGetChild(i) + " of path " + pathNode);
        }
        if (attribute.isCollection()) {
            PluralAttribute<?, ?, ?> pluralAttribute = (PluralAttribute<?, ?, ?>)attribute;
            managedType = (ManagedType<?>)pluralAttribute.getElementType();
        } else {
            managedType = (ManagedType<?>)((SingularAttribute)attribute).getType();
        }
    }
    typeDefinitions.add(new TypeDefinition(new Alias(aliasNode.toString()), managedType.getJavaType()));
    return false;
}
项目:hibernate-semantic-query    文件:Helper.java   
public static Type toType(Bindable bindable) {
    switch ( bindable.getBindableType() ) {
        case ENTITY_TYPE: {
            return (EntityType) bindable;
        }
        case SINGULAR_ATTRIBUTE: {
            return ( (SingularAttribute) bindable ).getType();
        }
        case PLURAL_ATTRIBUTE: {
            return ( (PluralAttribute) bindable ).getElementType();
        }
        default: {
            throw new ParsingException( "Unexpected Bindable type : " + bindable );
        }
    }
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
    public <Y> JpaFetch<X, Y> fetch(PluralAttribute<? super X, ?, Y> pluralAttribute, JoinType jt) {
//      if ( !canBeFetchSource() ) {
//          throw illegalFetch();
//      }
//
//      final Fetch<X, Y> fetch;
//      // TODO : combine Fetch and Join hierarchies (JoinImplementor extends Join,Fetch???)
//      if ( PluralAttribute.CollectionType.COLLECTION.equals( pluralAttribute.getCollectionType() ) ) {
//          fetch = constructJoin( (CollectionAttribute<X, Y>) pluralAttribute, jt );
//      }
//      else if ( PluralAttribute.CollectionType.LIST.equals( pluralAttribute.getCollectionType() ) ) {
//          fetch = constructJoin( (ListAttribute<X, Y>) pluralAttribute, jt );
//      }
//      else if ( PluralAttribute.CollectionType.SET.equals( pluralAttribute.getCollectionType() ) ) {
//          fetch = constructJoin( (SetAttribute<X, Y>) pluralAttribute, jt );
//      }
//      else {
//          fetch = constructJoin( (MapAttribute<X, ?, Y>) pluralAttribute, jt );
//      }
//      joinScope.addFetch( fetch );
//      return fetch;

        throw new NotYetImplementedException(  );
    }
项目:hibernate-semantic-query    文件:AbstractPathImpl.java   
@Override
    @SuppressWarnings({ "unchecked" })
    public <E, C extends Collection<E>> JpaExpression<C> get(PluralAttribute<X, C, E> attribute) {
//      if ( ! canBeDereferenced() ) {
//          throw illegalDereference();
//      }
//
//      PluralAttributePath<C> path = (PluralAttributePath<C>) resolveCachedAttributePath( attribute.getName() );
//      if ( path == null ) {
//          path = new PluralAttributePath<C>( criteriaBuilder(), this, attribute );
//          registerAttributePath( attribute.getName(), path );
//      }
//      return path;

        throw new NotYetImplementedException(  );
    }
项目:javaee-lab    文件:JpaUtil.java   
@SuppressWarnings("unchecked")
public <E, F> Path<F> getPath(Root<E> root, List<Attribute<?, ?>> attributes) {
    Path<?> path = root;
    for (Attribute<?, ?> attribute : attributes) {
        boolean found = false;
        if (path instanceof FetchParent) {
            for (Fetch<E, ?> fetch : ((FetchParent<?, E>) path).getFetches()) {
                if (attribute.getName().equals(fetch.getAttribute().getName()) && (fetch instanceof Join<?, ?>)) {
                    path = (Join<E, ?>) fetch;
                    found = true;
                    break;
                }
            }
        }
        if (!found) {
            if (attribute instanceof PluralAttribute) {
                path = ((From<?, ?>) path).join(attribute.getName(), JoinType.LEFT);
            } else {
                path = path.get(attribute.getName());
            }
        }
    }
    return (Path<F>) path;
}
项目:javaee-lab    文件:JpaUtil.java   
public void verifyPath(List<Attribute<?, ?>> path) {
    List<Attribute<?, ?>> attributes = newArrayList(path);
    Class<?> from = null;
    if (attributes.get(0).isCollection()) {
        from = ((PluralAttribute) attributes.get(0)).getElementType().getJavaType();
    } else {
        from = attributes.get(0).getJavaType();
    }
    attributes.remove(0);
    for (Attribute<?, ?> attribute : attributes) {
        if (!attribute.getDeclaringType().getJavaType().isAssignableFrom(from)) {
            throw new IllegalStateException("Wrong path.");
        }
        from = attribute.getJavaType();
    }
}
项目:javaee-lab    文件:GenericRepository.java   
@SuppressWarnings({"unchecked", "rawtypes"})
protected void fetches(SearchParameters sp, Root<E> root) {
    for (List<Attribute<?, ?>> args : sp.getFetches()) {
        FetchParent<?, ?> from = root;
        for (Attribute<?, ?> arg : args) {
            boolean found = false;
            for (Fetch<?, ?> fetch : from.getFetches()) {
                if (arg.equals(fetch.getAttribute())) {
                    from = fetch;
                    found = true;
                    break;
                }
            }
            if (!found) {
                if (arg instanceof PluralAttribute) {
                    from = from.fetch((PluralAttribute) arg, JoinType.LEFT);
                } else {
                    from = from.fetch((SingularAttribute) arg, JoinType.LEFT);
                }
            }
        }
    }
}
项目:javaee-lab    文件:MetamodelUtil.java   
public List<Attribute<?, ?>> toAttributes(String path, Class<?> from) {
    try {
        List<Attribute<?, ?>> attributes = newArrayList();
        Class<?> current = from;
        for (String pathItem : Splitter.on(".").split(path)) {
            Class<?> metamodelClass = getCachedClass(current);
            Field field = metamodelClass.getField(pathItem);
            Attribute<?, ?> attribute = (Attribute<?, ?>) field.get(null);
            attributes.add(attribute);
            if (attribute instanceof PluralAttribute) {
                current = ((PluralAttribute<?, ?, ?>) attribute).getElementType().getJavaType();
            } else {
                current = attribute.getJavaType();
            }
        }
        return attributes;
    } catch (Exception e) {
        throw new IllegalArgumentException(e);
    }
}
项目:jpasearch    文件:JpaUtil.java   
@SuppressWarnings({ "unchecked", "rawtypes" })
public <E> void fetches(SearchParameters<E> sp, Root<E> root) {
    for (jpasearch.repository.query.Path<E, ?> path : sp.getFetches()) {
        FetchParent<?, ?> from = root;
        for (Attribute<?, ?> arg : metamodelUtil.toAttributes(root.getJavaType(), path.getPath())) {
            boolean found = false;
            for (Fetch<?, ?> fetch : from.getFetches()) {
                if (arg.equals(fetch.getAttribute())) {
                    from = fetch;
                    found = true;
                    break;
                }
            }
            if (!found) {
                if (arg instanceof PluralAttribute) {
                    from = from.fetch((PluralAttribute) arg, JoinType.LEFT);
                } else {
                    from = from.fetch((SingularAttribute) arg, JoinType.LEFT);
                }
            }
        }
    }
}
项目:jpasearch    文件:MetamodelUtil.java   
public List<Attribute<?, ?>> toAttributes(Class<?> from, String path) {
    try {
        List<Attribute<?, ?>> attributes = new ArrayList<>();
        Class<?> current = from;
        for (String pathItem : Splitter.on(".").split(path)) {
            Class<?> metamodelClass = metamodelCache.get(current);
            Field field = metamodelClass.getField(pathItem);
            Attribute<?, ?> attribute = (Attribute<?, ?>) field.get(null);
            attributes.add(attribute);
            if (attribute instanceof PluralAttribute) {
                current = ((PluralAttribute<?, ?, ?>) attribute).getElementType().getJavaType();
            } else {
                current = attribute.getJavaType();
            }
        }
        return attributes;
    } catch (Exception e) {
        throw new IllegalArgumentException(e);
    }
}
项目:jfbdemo    文件:FilterCriteriaBuilder.java   
/**
 * This clumsy code is just to get the class of plural attribute mapping
 *
 * @param et
 * @param fieldName
 * @return
 */
private Class<?> getPluralJavaType(EntityType<?> et, String fieldName) {
    for (PluralAttribute pa : et.getPluralAttributes()) {
        if (pa.getName().equals(fieldName)) {
            switch (pa.getCollectionType()) {
                case COLLECTION:
                    return et.getCollection(fieldName).getElementType().getJavaType();
                case LIST:
                    return et.getList(fieldName).getElementType().getJavaType();
                case SET:
                    return et.getSet(fieldName).getElementType().getJavaType();
                case MAP:
                    throw new UnsupportedOperationException("Entity Map mapping unsupported for entity: " + et.getName() + " field name: " + fieldName);
            }
        }
    }
    throw new IllegalArgumentException("Field " + fieldName + " of entity " + et.getName() + " is not a plural attribute");
}
项目:elrest-java    文件:JPAFilterImplTest.java   
@Test
public void hibernatePluralPathTest() {
    CriteriaBuilder build = em.getCriteriaBuilder();
    CriteriaQuery<OneToManyInstance> critQ = build.createQuery(OneToManyInstance.class);
    Root<OneToManyInstance> resultRoot = critQ.from(OneToManyInstance.class);
    Path pluralPath = resultRoot.get("many");
    Bindable shouldBePluralAttribute = pluralPath.getModel();
    assertNotNull(shouldBePluralAttribute);

    assertTrue(shouldBePluralAttribute instanceof PluralAttribute);
}
项目:oma-riista-web    文件:JpaSubQuery.java   
@Nonnull
public static <P, S> JpaSubQuery<P, S> of(@Nonnull final PluralAttribute<P, ?, S> attribute) {
    return new AbstractSubQuery<P, S, PluralAttribute<P, ?, S>>(Objects.requireNonNull(attribute)) {
        @Override
        protected From<P, S> join(final Root<P> root) {
            return CriteriaUtils.join(root, attribute);
        }
    };
}
项目:oma-riista-web    文件:JpaSubQuery.java   
@Nonnull
public static <P, S> JpaSubQuery<P, S> inverseOf(@Nonnull final PluralAttribute<S, ?, P> attribute) {
    return new AbstractReverseSubQuery<P, S, PluralAttribute<S, ?, P>>(Objects.requireNonNull(attribute)) {
        @Override
        protected Path<P> getPathToParentRoot(final Root<S> root) {
            return CriteriaUtils.join(root, attribute);
        }
    };
}
项目:oma-riista-web    文件:CriteriaUtils.java   
public static <T, U> boolean isCollectionLoaded(
        @Nonnull final T entity,
        @Nonnull final PluralAttribute<? super T, ? extends Collection<U>, U> pluralAttribute) {

    Objects.requireNonNull(entity, "entity is null");

    return getCollectionIfInitialized(pluralAttribute).apply(entity) != null;
}
项目:oma-riista-web    文件:CriteriaUtils.java   
private static <T, U, C extends Collection<U>> Function<T, C> getCollectionIfInitialized(
        final PluralAttribute<? super T, C, U> attribute) {

    Objects.requireNonNull(attribute);

    return new Function<T, C>() {

        // Cache for lazy-initialized function, not strictly thread-safe
        private Function<T, C> collectionFn;

        @Nullable
        @Override
        public C apply(@Nullable final T entity) {
            if (entity == null || !Hibernate.isInitialized(entity)) {
                return null;
            }

            if (collectionFn == null) {
                collectionFn = jpaCollection(attribute);
            }

            final C collection = collectionFn.apply(entity);

            return Hibernate.isInitialized(collection) ? collection : null;
        }
    };
}
项目:oma-riista-web    文件:JpaSpecs.java   
@Nonnull
public static <T, X, Y> Specification<T> equal(
        @Nonnull final PluralAttribute<? super T, ?, X> attribute1,
        @Nonnull final SingularAttribute<? super X, Y> attribute2,
        @Nullable final Y value) {

    Objects.requireNonNull(attribute1, "attribute1 must not be null");
    Objects.requireNonNull(attribute2, "attribute2 must not be null");

    return (root, query, cb) -> JpaPreds.equal(cb, CriteriaUtils.join(root, attribute1).get(attribute2), value);
}
项目:jpasecurity    文件:TypeDefinition.java   
@Override
protected ManagedType<?> transform(TypeDefinition typeDefinition) {
    if (!path.hasSubpath()) {
        return forModel(metamodel).filter(typeDefinition.getType());
    }
    Attribute<?, ?> attribute = (Attribute<?, ?>)filter.transform(typeDefinition);
    if (attribute.isCollection()) {
        return (ManagedType<?>)((PluralAttribute<?, ?, ?>)attribute).getElementType();
    } else {
        return (ManagedType<?>)((SingularAttribute<?, ?>)attribute).getType();
    }
}
项目:kc-rice    文件:JpaMetadataProviderImpl.java   
/**
    * Gets a collection's metadata from the property descriptor.
    *
    * @param collections The list of plural attributes to process.
    * @return The list of collections for this data object.
    */
protected List<DataObjectCollection> getCollectionsFromMetadata(Set<PluralAttribute> collections) {
    List<DataObjectCollection> colls = new ArrayList<DataObjectCollection>(collections.size());
    for (PluralAttribute cd : collections) {
        colls.add(getCollectionMetadataFromCollectionAttribute(cd));
    }
    return colls;
}
项目:random-jpa    文件:AttributeHelper.java   
public static Class<?> getAttributeClass(final Attribute<?, ?> attribute) {
    if (attribute == null) {
        throw new NullPointerException(ATTRIBUTE_CANNOT_BE_NULL);
    }
    if (attribute instanceof PluralAttribute) {
        return ((PluralAttribute) attribute).getBindableJavaType();
    }
    return attribute.getJavaType();
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> JpaAttributeJoin<X, Y> join(String attributeName, JoinType jt) {
    if ( !canBeJoinSource() ) {
        throw illegalJoin();
    }

    if ( jt.equals( JoinType.RIGHT ) ) {
        throw new UnsupportedOperationException( "RIGHT JOIN not supported" );
    }

    final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( attribute.isCollection() ) {
        final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
        if ( PluralAttribute.CollectionType.COLLECTION.equals( pluralAttribute.getCollectionType() ) ) {
            return (JpaAttributeJoin<X, Y>) join( (CollectionAttribute) attribute, jt );
        }
        else if ( PluralAttribute.CollectionType.LIST.equals( pluralAttribute.getCollectionType() ) ) {
            return (JpaAttributeJoin<X, Y>) join( (ListAttribute) attribute, jt );
        }
        else if ( PluralAttribute.CollectionType.SET.equals( pluralAttribute.getCollectionType() ) ) {
            return (JpaAttributeJoin<X, Y>) join( (SetAttribute) attribute, jt );
        }
        else {
            return (JpaAttributeJoin<X, Y>) join( (MapAttribute) attribute, jt );
        }
    }
    else {
        return (JpaAttributeJoin<X, Y>) join( (SingularAttribute) attribute, jt );
    }
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> JpaCollectionJoin<X, Y> joinCollection(String attributeName, JoinType jt) {
    final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( !attribute.isCollection() ) {
        throw new IllegalArgumentException( "Requested attribute was not a collection" );
    }

    final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
    if ( !PluralAttribute.CollectionType.COLLECTION.equals( pluralAttribute.getCollectionType() ) ) {
        throw new IllegalArgumentException( "Requested attribute was not a collection" );
    }

    return (JpaCollectionJoin<X, Y>) join( (CollectionAttribute) attribute, jt );
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> JpaSetJoin<X, Y> joinSet(String attributeName, JoinType jt) {
    final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( !attribute.isCollection() ) {
        throw new IllegalArgumentException( "Requested attribute was not a set" );
    }

    final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
    if ( !PluralAttribute.CollectionType.SET.equals( pluralAttribute.getCollectionType() ) ) {
        throw new IllegalArgumentException( "Requested attribute was not a set" );
    }

    return (JpaSetJoin<X, Y>) join( (SetAttribute) attribute, jt );
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> JpaListJoin<X, Y> joinList(String attributeName, JoinType jt) {
    final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( !attribute.isCollection() ) {
        throw new IllegalArgumentException( "Requested attribute was not a list" );
    }

    final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
    if ( !PluralAttribute.CollectionType.LIST.equals( pluralAttribute.getCollectionType() ) ) {
        throw new IllegalArgumentException( "Requested attribute was not a list" );
    }

    return (JpaListJoin<X, Y>) join( (ListAttribute) attribute, jt );
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, K, V> JpaMapJoin<X, K, V> joinMap(String attributeName, JoinType jt) {
    final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( !attribute.isCollection() ) {
        throw new IllegalArgumentException( "Requested attribute was not a map" );
    }

    final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
    if ( !PluralAttribute.CollectionType.MAP.equals( pluralAttribute.getCollectionType() ) ) {
        throw new IllegalArgumentException( "Requested attribute was not a map" );
    }

    return (JpaMapJoin<X, K, V>) join( (MapAttribute) attribute, jt );
}
项目:hibernate-semantic-query    文件:AbstractFromImpl.java   
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> JpaFetch<X, Y> fetch(String attributeName, JoinType jt) {
    if ( !canBeFetchSource() ) {
        throw illegalFetch();
    }

    Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
    if ( attribute.isCollection() ) {
        return (JpaFetch<X, Y>) fetch( (PluralAttribute) attribute, jt );
    }
    else {
        return (JpaFetch<X, Y>) fetch( (SingularAttribute) attribute, jt );
    }
}
项目:graphql-jpa    文件:JpaDataFetcher.java   
private Predicate getPredicate(CriteriaBuilder cb, Root root, DataFetchingEnvironment environment, Argument argument) {
    Path path = null;
    if (!argument.getName().contains(".")) {
        Attribute argumentEntityAttribute = getAttribute(environment, argument);

        // If the argument is a list, let's assume we need to join and do an 'in' clause
        if (argumentEntityAttribute instanceof PluralAttribute) {
            Join join = root.join(argument.getName());
            return join.in(convertValue(environment, argument, argument.getValue()));
        }

        path = root.get(argument.getName());

        return cb.equal(path, convertValue(environment, argument, argument.getValue()));
    } else {
        List<String> parts = Arrays.asList(argument.getName().split("\\."));
        for (String part : parts) {
            if (path == null) {
                path = root.get(part);
            } else {
                path = path.get(part);
            }
        }

        return cb.equal(path, convertValue(environment, argument, argument.getValue()));
    }
}
项目:graphql-jpa    文件:JpaDataFetcher.java   
private Class getJavaType(DataFetchingEnvironment environment, Argument argument) {
    Attribute argumentEntityAttribute = getAttribute(environment, argument);

    if (argumentEntityAttribute instanceof PluralAttribute)
        return ((PluralAttribute) argumentEntityAttribute).getElementType().getJavaType();

    return argumentEntityAttribute.getJavaType();
}
项目:teiid    文件:JPAMetadataProcessor.java   
private void addForeignKeys(MetadataFactory mf, Metamodel model, ManagedType<?> entity, Table entityTable) throws TranslatorException {
    for (Attribute<?, ?> attr:entity.getAttributes()) {
        if (attr.isCollection()) {

            PluralAttribute pa = (PluralAttribute)attr;
            Table forignTable = null;

            for (EntityType et:model.getEntities()) {
                if (et.getJavaType().equals(pa.getElementType().getJavaType())) {
                    forignTable = mf.getSchema().getTable(et.getName());
                    break;
                }
            }

            if (forignTable == null) {
                continue;
            }

            // add foreign keys as columns in table first; check if they exist first
            ArrayList<String> keys = new ArrayList<String>();
            KeyRecord pk = entityTable.getPrimaryKey();
            for (Column entityColumn:pk.getColumns()) {
                addColumn(mf, entityColumn.getName(), entityColumn.getDatatype().getRuntimeTypeName(), forignTable);
                keys.add(entityColumn.getName());
            }

            if (!foreignKeyExists(keys, forignTable)) {
                addForiegnKey(mf, attr.getName(), keys, entityTable.getName(), forignTable);
            }
        }
    }
}
项目:javaee-lab    文件:MetamodelUtil.java   
/**
 * Retrieves cascade from metamodel attribute
 *
 * @param attribute given pluaral attribute
 * @return an empty collection if no jpa relation annotation can be found.
 */
public Collection<CascadeType> getCascades(PluralAttribute<?, ?, ?> attribute) {
    if (attribute.getJavaMember() instanceof AccessibleObject) {
        AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember();
        OneToMany oneToMany = accessibleObject.getAnnotation(OneToMany.class);
        if (oneToMany != null) {
            return newArrayList(oneToMany.cascade());
        }
        ManyToMany manyToMany = accessibleObject.getAnnotation(ManyToMany.class);
        if (manyToMany != null) {
            return newArrayList(manyToMany.cascade());
        }
    }
    return newArrayList();
}
项目:javaee-lab    文件:MetamodelUtil.java   
public boolean isOrphanRemoval(PluralAttribute<?, ?, ?> attribute) {
    if (attribute.getJavaMember() instanceof AccessibleObject) {
        AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember();
        OneToMany oneToMany = accessibleObject.getAnnotation(OneToMany.class);
        if (oneToMany != null) {
            return oneToMany.orphanRemoval();
        }
    }
    return true;
}
项目:jpasearch    文件:MetamodelUtil.java   
/**
 * Retrieves cascade from metamodel attribute
 * 
 * @return an empty collection if no jpa relation annotation can be found.
 */
public Collection<CascadeType> getCascades(PluralAttribute<?, ?, ?> attribute) {
    if (attribute.getJavaMember() instanceof AccessibleObject) {
        AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember();
        OneToMany oneToMany = accessibleObject.getAnnotation(OneToMany.class);
        if (oneToMany != null) {
            return Arrays.asList(oneToMany.cascade());
        }
        ManyToMany manyToMany = accessibleObject.getAnnotation(ManyToMany.class);
        if (manyToMany != null) {
            return Arrays.asList(manyToMany.cascade());
        }
    }
    return new ArrayList<>();
}
项目:jpasearch    文件:MetamodelUtil.java   
public boolean isOrphanRemoval(PluralAttribute<?, ?, ?> attribute) {
    if (attribute.getJavaMember() instanceof AccessibleObject) {
        AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember();
        OneToMany oneToMany = accessibleObject.getAnnotation(OneToMany.class);
        if (oneToMany != null) {
            return oneToMany.orphanRemoval();
        }
    }
    return true;
}
项目:rice    文件:JpaMetadataProviderImpl.java   
/**
    * Gets a collection's metadata from the property descriptor.
    *
    * @param collections The list of plural attributes to process.
    * @return The list of collections for this data object.
    */
protected List<DataObjectCollection> getCollectionsFromMetadata(Set<PluralAttribute> collections) {
    List<DataObjectCollection> colls = new ArrayList<DataObjectCollection>(collections.size());
    for (PluralAttribute cd : collections) {
        colls.add(getCollectionMetadataFromCollectionAttribute(cd));
    }
    return colls;
}