本文整理了Java中javax.persistence.criteria.Path.getModel()
方法的一些代码示例,展示了Path.getModel()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Path.getModel()
方法的具体详情如下:
包路径:javax.persistence.criteria.Path
类名称: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) {
内容来源于网络,如有侵权,请联系作者删除!