|
33 | 33 | import java.util.stream.Collectors;
|
34 | 34 | import java.util.stream.Stream;
|
35 | 35 |
|
| 36 | +import javax.persistence.Convert; |
36 | 37 | import javax.persistence.EntityManager;
|
37 | 38 | import javax.persistence.Transient;
|
38 | 39 | import javax.persistence.metamodel.Attribute;
|
|
43 | 44 | import javax.persistence.metamodel.SingularAttribute;
|
44 | 45 | import javax.persistence.metamodel.Type;
|
45 | 46 |
|
46 |
| -import org.slf4j.Logger; |
47 |
| -import org.slf4j.LoggerFactory; |
48 |
| - |
49 | 47 | import com.introproventures.graphql.jpa.query.annotation.GraphQLDescription;
|
50 | 48 | import com.introproventures.graphql.jpa.query.annotation.GraphQLIgnore;
|
51 | 49 | import com.introproventures.graphql.jpa.query.annotation.GraphQLIgnoreFilter;
|
|
55 | 53 | import com.introproventures.graphql.jpa.query.schema.NamingStrategy;
|
56 | 54 | import com.introproventures.graphql.jpa.query.schema.impl.IntrospectionUtils.CachedIntrospectionResult.CachedPropertyDescriptor;
|
57 | 55 | import com.introproventures.graphql.jpa.query.schema.impl.PredicateFilter.Criteria;
|
58 |
| - |
59 | 56 | import graphql.Assert;
|
60 | 57 | import graphql.Scalars;
|
61 | 58 | import graphql.schema.Coercing;
|
|
73 | 70 | import graphql.schema.GraphQLType;
|
74 | 71 | import graphql.schema.GraphQLTypeReference;
|
75 | 72 | import graphql.schema.PropertyDataFetcher;
|
| 73 | +import org.slf4j.Logger; |
| 74 | +import org.slf4j.LoggerFactory; |
76 | 75 |
|
77 | 76 | /**
|
78 | 77 | * JPA specific schema builder implementation of {code #GraphQLSchemaBuilder} interface
|
@@ -437,6 +436,16 @@ private GraphQLInputType getWhereAttributeType(Attribute<?,?> attribute) {
|
437 | 436 | .type(getAttributeInputType(attribute))
|
438 | 437 | .build()
|
439 | 438 | );
|
| 439 | + } |
| 440 | + else if (attribute.getJavaMember().getClass().isAssignableFrom(Field.class) |
| 441 | + && Field.class.cast(attribute.getJavaMember()) |
| 442 | + .isAnnotationPresent(Convert.class)) |
| 443 | + { |
| 444 | + builder.field(GraphQLInputObjectField.newInputObjectField() |
| 445 | + .name(Criteria.LOCATE.name()) |
| 446 | + .description("Locate search criteria") |
| 447 | + .type(getAttributeInputType(attribute)) |
| 448 | + .build()); |
440 | 449 | }
|
441 | 450 | }
|
442 | 451 |
|
|
0 commit comments