javax.persistence.criteria.Path.getModel()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(8.6k)|赞(0)|评价(0)|浏览(108)

本文整理了Java中javax.persistence.criteria.Path.getModel()方法的一些代码示例,展示了Path.getModel()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Path.getModel()方法的具体详情如下:
包路径:javax.persistence.criteria.Path
类名称:Path
方法名:getModel

Path.getModel介绍

[英]Return the bindable object that corresponds to the path expression.
[中]返回与路径表达式对应的可绑定对象。

代码示例

代码示例来源:origin: spring-projects/spring-data-jpa

@SuppressWarnings("unchecked")
static <T> Expression<T> toExpressionRecursively(From<?, ?> from, PropertyPath property, boolean isForSelection) {
  Bindable<?> propertyPathModel;
  Bindable<?> model = from.getModel();
  String segment = property.getSegment();
  if (model instanceof ManagedType) {
    /*
     *  Required to keep support for EclipseLink 2.4.x. TODO: Remove once we drop that (probably Dijkstra M1)
     *  See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=413892
     */
    propertyPathModel = (Bindable<?>) ((ManagedType<?>) model).getAttribute(segment);
  } else {
    propertyPathModel = from.get(segment).getModel();
  }
  if (requiresJoin(propertyPathModel, model instanceof PluralAttribute, !property.hasNext(), isForSelection)
      && !isAlreadyFetched(from, segment)) {
    Join<?, ?> join = getOrCreateJoin(from, segment);
    return (Expression<T>) (property.hasNext() ? toExpressionRecursively(join, property.next(), isForSelection)
        : join);
  } else {
    Path<Object> path = from.get(segment);
    return (Expression<T>) (property.hasNext() ? toExpressionRecursively(path, property.next()) : path);
  }
}

代码示例来源:origin: com.kumuluz.ee.rest/kumuluzee-rest-core

private static Object getValueForPath(Path path, String value) {
  if (value == null) return null;
  Class c = path.getModel().getBindableJavaType();
  try {
    if (c.equals(Date.class))
      return Date.from(ZonedDateTime.parse(value).toInstant());
    if (c.equals(Instant.class))
      return ZonedDateTime.parse(value).toInstant();
    if (c.equals(Boolean.class))
      return Boolean.parseBoolean(value);
    if (c.isEnum())
      return Enum.valueOf(c, value);
    if (c.equals(UUID.class))
      return UUID.fromString(value);
  } catch (IllegalArgumentException | DateTimeParseException e) {
    throw new InvalidFieldValueException(e.getMessage(), path.getAlias(), value);
  }
  return value;
}

代码示例来源:origin: org.omnifaces/omnipersistence

/**
 * Returns whether given path is {@link Enumerated} by {@link EnumType#ORDINAL}.
 * @param path Path of interest.
 * @return Whether given path is {@link Enumerated} by {@link EnumType#ORDINAL}.
 */
public static boolean isEnumeratedByOrdinal(Path<?> path) {
  Bindable<?> model = path.getModel();
  if (model instanceof Attribute) {
    Member member = ((Attribute<?, ?>) model).getJavaMember();
    if (member instanceof AnnotatedElement) {
      Enumerated enumerated = ((AnnotatedElement) member).getAnnotation(Enumerated.class);
      if (enumerated != null) {
        return enumerated.value() == EnumType.ORDINAL;
      }
    }
  }
  return false;
}

代码示例来源:origin: babyfish-ct/babyfish

private void pathMustBeChildOfRoot(Path<?> attribute) {
  Arguments.mustBeInstanceOfValue("attribute.getModel()", attribute.getModel(), SingularAttribute.class);
  for (Path<?> parent = attribute.getParentPath(); parent != null; parent = parent.getParentPath()) {
    if (parent == this.root) {
      return;
    }
  }
  throw new IllegalArgumentException(pathMustBeChildOfRoot(this.getClass()));
}

代码示例来源:origin: org.omnifaces/omnipersistence

if (depth == 1 && isTransient(path.getModel().getBindableJavaType(), attribute)) {
  path = guessManyOrOneToOnePath(attribute);

代码示例来源:origin: com.kumuluz.ee.rest/kumuluzee-rest-core

private static CriteriaField getCriteriaField(String fieldName, Root<?> r) {
  if (fieldName == null) fieldName = "";
  String fields[] = fieldName.split("\\.");
  From from = r;
  Path path = r;
  Boolean containsToMany = false;
  for (String field : fields) {
    path = from.get(field);
    if (path.getModel() == null &&
        (path.getJavaType().equals(List.class) || path.getJavaType().equals(Set.class))) {
      containsToMany = true;
      from = from.join(field);
    } else {
      switch (((Attribute) path.getModel()).getPersistentAttributeType()) {
        case ONE_TO_MANY:
        case MANY_TO_MANY:
          containsToMany = true;
        case ONE_TO_ONE:
        case MANY_TO_ONE:
        case EMBEDDED:
          from = from.join(field);
          break;
      }
    }
  }
  return new CriteriaField(path, containsToMany);
}

代码示例来源:origin: jaxio/generated-projects

public <E> Predicate byExampleOnEmbeddable(Path<E> embeddablePath, E embeddableValue, SearchParameters sp, CriteriaBuilder builder) {
  if (embeddableValue == null) {
    return null;
  }
  Class<E> type = embeddablePath.getModel().getBindableJavaType();
  ManagedType<E> mt = em.getMetamodel().embeddable(type); // note: calling .managedType() does not work
  return jpaUtil.orPredicate(builder, byExample(mt, embeddablePath, embeddableValue, sp, builder));
}

代码示例来源:origin: jaxio/jpa-query-by-example

public <E> Predicate byExampleOnEmbeddable(Path<E> embeddablePath, E embeddableValue, SearchParameters sp, CriteriaBuilder builder) {
  if (embeddableValue == null) {
    return null;
  }
  Class<E> type = embeddablePath.getModel().getBindableJavaType();
  ManagedType<E> mt = em.getMetamodel().embeddable(type); // note: calling .managedType() does not work
  return jpaUtil.andPredicate(builder, byExample(mt, embeddablePath, embeddableValue, sp, builder));
}

代码示例来源:origin: jaxio/generated-projects

public <E> Predicate byExampleOnEmbeddable(Path<E> embeddablePath, E embeddableValue, SearchParameters sp, CriteriaBuilder builder) {
  if (embeddableValue == null) {
    return null;
  }
  Class<E> type = embeddablePath.getModel().getBindableJavaType();
  ManagedType<E> mt = em.getMetamodel().embeddable(type); // note: calling .managedType() does not work
  return jpaUtil.andPredicate(builder, byExample(mt, embeddablePath, embeddableValue, sp, builder));
}

代码示例来源:origin: katharsis-project/katharsis-framework

public static boolean containsRelation(Object expr) {
 if (expr instanceof Join) {
  return true;
 }
 else if (expr instanceof SingularAttribute) {
  SingularAttribute<?, ?> attr = (SingularAttribute<?, ?>) expr;
  return attr.isAssociation();
 }
 else if (expr instanceof Path) {
  Path<?> attrPath = (Path<?>) expr;
  Bindable<?> model = attrPath.getModel();
  Path<?> parent = attrPath.getParentPath();
  return containsRelation(parent) || containsRelation(model);
 }
 else {
  // we may can do better here...
  return false;
 }
}

代码示例来源:origin: jaxio/jpa-query-by-example

public <E> Predicate byExampleOnEmbeddable(Path<E> embeddablePath, E embeddableValue, SearchParameters sp, CriteriaBuilder builder) {
  if (embeddableValue == null) {
    return null;
  }
  Class<E> type = embeddablePath.getModel().getBindableJavaType();
  ManagedType<E> mt = em.getMetamodel().embeddable(type); // note: calling .managedType() does not work
  return jpaUtil.orPredicate(builder, byExample(mt, embeddablePath, embeddableValue, sp, builder));
}

代码示例来源:origin: com.introproventures/graphql-jpa-query-schema

if(fieldPath.getModel() instanceof SingularAttribute) {
  if (fieldPath.getModel() instanceof SingularAttribute) {
    SingularAttribute<?,?> attribute = (SingularAttribute<?,?>) fieldPath.getModel();
    if (attribute.getPersistentAttributeType() == Attribute.PersistentAttributeType.MANY_TO_ONE
      || attribute.getPersistentAttributeType() == Attribute.PersistentAttributeType.ONE_TO_ONE

代码示例来源:origin: com.introproventures/graphql-jpa-query-schema

if(field.getModel() == null)
    return from.join(filter.getField()).in(value);
} else if(type.isEnum()) {

代码示例来源:origin: com.kumuluz.ee.rest/kumuluzee-rest-core

if (entityField.getModel() == null || !((Attribute) entityField.getModel()).getPersistentAttributeType()
    .equals(Attribute.PersistentAttributeType.BASIC)) {
  continue;

代码示例来源:origin: org.springframework.data/spring-data-jpa

@SuppressWarnings("unchecked")
static <T> Expression<T> toExpressionRecursively(From<?, ?> from, PropertyPath property, boolean isForSelection) {
  Bindable<?> propertyPathModel;
  Bindable<?> model = from.getModel();
  String segment = property.getSegment();
  if (model instanceof ManagedType) {
    /*
     *  Required to keep support for EclipseLink 2.4.x. TODO: Remove once we drop that (probably Dijkstra M1)
     *  See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=413892
     */
    propertyPathModel = (Bindable<?>) ((ManagedType<?>) model).getAttribute(segment);
  } else {
    propertyPathModel = from.get(segment).getModel();
  }
  if (requiresJoin(propertyPathModel, model instanceof PluralAttribute, !property.hasNext(), isForSelection)
      && !isAlreadyFetched(from, segment)) {
    Join<?, ?> join = getOrCreateJoin(from, segment);
    return (Expression<T>) (property.hasNext() ? toExpressionRecursively(join, property.next(), isForSelection)
        : join);
  } else {
    Path<Object> path = from.get(segment);
    return (Expression<T>) (property.hasNext() ? toExpressionRecursively(path, property.next()) : path);
  }
}

代码示例来源:origin: babyfish-ct/babyfish

if (path.getModel() instanceof SingularAttribute<?, ?>) {
  SingularAttribute<?, ?> attribute = (SingularAttribute<?, ?>)path.getModel();
  if (attribute.isId()) {
    if (path.getParentPath() instanceof Join<?, ?>) {
Attribute<?, ?> attribute = (Attribute<?, ?>)path.getModel();
if (attribute != null) {
  if (!leaf || directlyReferencedByTopmostSelection) {

相关文章