Мой класс сущности в моем приложении выглядит следующим образом.
@Entity
public class User{
@Id
@Column(name = "userId")
Long userId;
@Column(name = "name")
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user", cascade = cascadeType.ALL)
@JsonIgnoreProperties("user")
String name;
List<PhoneNumber> phoneNumbers;
//setters ans getters
}
@Entity
Public class PhoneNumber{
@Id
@Column
Long phoneid;
String PhoneNo;
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
@JsonIgnoreProperties("phoneNumbers")
User user;
//setters and getters
}
В вышеуказанных классах сущностей. У меня есть 2 сценария:
Пользователь отношения один ко многим имел много телефонных номеров (список телефонных номеров)
связь «многие к одному» многие телефонные номера принадлежат одному пользователю
Мне нужно получить данные в обоих направлениях. Как я могу написать файлы user.graphqls и phonenumber.graphqls для представления этих сущностей, а также graphqlseolvers. Я не могу получить данные. Я получил следующее исключение
Type java.util.Set cannot be mapped to a GraphQL type! Since GraphQL-Java deals with erased types at runtime, only non-Parameterized classes can represent a GraphQL type.
Это позволяет выполнять обратный поиск по классу java в интерфейсах и типах объединения.
В GraphQL вам нужно определить сущность/документ с типом. Пожалуйста, найдите ниже определения типов для вашего вопроса:
type User{
userId :Long
phoneNumbers :[PhoneNumber]
}
type PhoneNumber{
phoneid : Long
PhoneNo : String
user: User
}