Попытка создать связь OneToMany в GraphQLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Попытка создать связь OneToMany в GraphQL

Сообщение Anonymous »

Я новичок в GraphQL и пытаюсь создать связь OneToMany между фильмами и их субтитрами на разных языках. Вот мой код:
(я настраиваю внешний ключ в таблицах БД)
Это мой файл схемы

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

type Movie {
movieId: ID!
englishName: String!
subtitles: [Subtitle]!
}

type Subtitle {
subtitleId: ID!
movieId: Movie!
locale: String!
...
}
Объекты Java:

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

@Entity
@Table(name="movie")
public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="movie_id")
private Long movieId;

@Column(name="english_name")
private String englishName;

@OneToMany(mappedBy="movie", cascade=CascadeType.ALL, orphanRemoval=true)
private Set subtitles;
}

@Entity
@Table(name="subtitle")
public class Subtitle {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="subtitle_id")
private Long subtitleId;

@ManyToOne
@JoinColumn(name = "movie_id", nullable = false)
private Movie movie;

@Column(name="locale")
private String locale;
...
}
Резолютор

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

@Slf4j
@Component
public class SubtitleResolver implements GraphQLQueryResolver {

@Autowired
private SubtitleDAO subtitleDAO;

public Set getAllSubtitles(String locale) {
log.info("Getting all subtitles for locale {}", locale);
return subtitleDAO.getAllSubtitlesForLocale(locale);
}
}
Но когда я пытаюсь запустить это, я получаю две ошибки
  • в Подзаголовке >, он просит меня ввести геттеры для атрибутов класса Movie.
  • И когда я добавляю эти геттеры, я получаю эту ошибку:< /li>
SchemaClassScannerError: для типа Movie используются два разных класса:
возвращает тип метода public java.util.Set
com.home.moviesubtitles.dao.MovieResolver.getAllSubtitlesForLocale
  • класс com.home.moviesubtitles.entities.Movie: | тип возвращаемого метода public com.home.moviesubtitles.entities.Movie
    com.home.moviesubtitles.entities.Subtitle.getMovie()
Кто-нибудь знает, почему это происходит?

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-graphql
Ответить

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

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

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

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

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