Graphql-spqr не может запросить поле родительского классаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Graphql-spqr не может запросить поле родительского класса

Сообщение Anonymous »

Я пытался реализовать классы сущностей, используя полиморфизм.

Это мой BaseEntity

Код: Выделить всё

@Getter
@Setter
@Accessors(chain = true)
@MappedSuperclass
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Size(max = 55, message = "name length more then 55")
private String name;

@Size(max = 255, message = "remark length more than 255")
private String remark;

}

И моя сущность

Код: Выделить всё

@Data
@NoArgsConstructor
@Table(name = "sys_user")
@Entity(name = "sys_user")
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class SysUser extends BaseEntity implements Serializable {

@NonNull
private String username;

@NonNull
private String password;

}
В моем контроллере

Код: Выделить всё

@Controller
@GraphQLApi
@RequiredArgsConstructor
public class SysUserController implements BaseController {

private final SysUserRepository sysUserRepository;

@GraphQLQuery
public List sysUsers() {
return sysUserRepository.findAll();
}

}

Моя конфигурация GraphQL

Код: Выделить всё

@Configuration
@RequiredArgsConstructor
public class GraphQLConfig {

private final @NotNull List controllerLists;

@Bean
public GraphQLSchema graphqlSchema() {
GraphQLSchemaGenerator generator = new GraphQLSchemaGenerator();
generator.withOperationsFromSingletons(controllerLists.toArray());
return generator.generate();
}

}
Теперь я пытаюсь получить

Код: Выделить всё

{
sysUsers {
username
}
}
Результат правильный

Код: Выделить всё

{
"data": {
"sysUsers": [
{
"username": "Hello"
}
]
}
}
Но я пытаюсь получить поле родительского класса:

Код: Выделить всё

{
sysUsers {
name
}
}
Я получу ошибку

Код: Выделить всё

{
"errors": [
{
"message": "Validation error of type FieldUndefined: Field 'name' in type 'SysUser' is undefined @ 'sysUsers/name'",
"locations": [
{
"line": 3,
"column": 5
}
]
}
]
}
Я использую io.leangen.graphql:graphql-spqr-spring-boot-starter:0.0.4

Как решить этот вопрос?

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/586 ... lass-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»