It seems that the names defined in the .graphqls
file MUST match the field names in the POJO. Is there a way to maybe annotate the field so that they don't have to?
For example, I have something like this in the graphqls file
type Person {
personId: ID!
name: String!
}
Then in my Entity POJO I have like
@Id
@Column(name="PERSON_ID")
@JsonProperty("person_id")
private int personId;
@Column(name="NAME")
@JsonProperty("name")
private String name;
So, the intention is for the field name to be personId
and the database to store it as a column called PERSON_ID
and for it to get serialized as JSON and GraphQL as person_id
But graphql talks in the language of the schema. So it serializes it as personId
which matches the schema field but is not the intention. I could change the schema to be person_id
but then I need to change the field too... This isn't the end of the world but it's quite "un-javalike" to have fields named that way.
I am using this library:
compile group: 'com.graphql-java', name: 'graphql-spring-boot-starter', version: '5.0.2'
I have also seen the @GraphQLName
annotation in the annotations library but I must be missing something because it doesn't do what I am expecting or maybe I am using it wrong.
Is there some way to get around this or should I just change the names?