Ошибка переполнения стека при создании записи базы данных с использованием Hibernate и Springboot ⇐ JAVA
Ошибка переполнения стека при создании записи базы данных с использованием Hibernate и Springboot
Я пытаюсь создать новую запись в базе данных, используя спящий режим Springboot, и когда я делаю запрос на публикацию, я получаю сообщение об ошибке внутреннего сервера 500 в почтовом ящике, в котором говорится, что у меня проблема с потоком стека.
@Data @Сущность публичный класс AppUser { @GeneratedValue @Идентификатор частный целочисленный идентификатор пользователя; личное имя пользователя String; личный строковый пароль; @OneToMany(mappedBy = "appUser") @ToString.Exclude частный список userStrategies; @Builder public AppUser (имя пользователя String, пароль String) { this.username = имя пользователя; this.password = пароль; } публичный AppUser(){} } @Entity @Данные общественный класс Game { @GeneratedValue @Идентификатор частный целочисленный идентификатор игры; частная строка gameName; частная строка gameDescription; @OneToMany(mappedBy = "игра") @ToString.Exclude частный список gameStrategies; публичная игра(){} @Builder public Game(String gameName, String gameDescription) { это.ИмяИгры = ИмяИгры; this.gameDescription = gameDescription; } } @Entity @Данные Стратегия публичного класса { @GeneratedValue @Идентификатор частный целочисленный идентификатор; частная строка StrategyName; частная строковая стратегияОписание; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn (referencedColumnName = «userId») @ToString.Exclude частный пользователь приложения appUser; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn(referencedColumnName="gameId") @ToString.Exclude частная игра; публичная стратегия(){} @Builder public Strategy(String StrategyName, String StrategyDescription, Game Game, AppUser appUser) { this.strategyName = имя стратегии; this.strategyDescription = StrategyDescription; this.appUser = appUser; this.game = игра; } } @Service публичный класс StrategyService { @Autowired частный GameRepository gameRepository; @Autowired частный AppUserRepository userRepository; @Autowired частный StrategyRepository StrategyRepository; public Strategy creatStrategy(Стратегия стратегии, Целочисленный идентификатор пользователя, Целочисленный идентификатор игры){ Игра game = gameRepository.findById(gameId).get(); Пользователь AppUser = userRepository.findById(userId).get(); Стратегия newStrategy = Strategy.builder() .strategyDescription(strategy.getStrategyDescription()) .strategyName(strategy.getStrategyName()) .game(игра) .appUser(пользователь) .строить(); StrategyRepository.save(newStrategy); вернуть новую стратегию; } } @RestController публичный класс StrategyController { @Autowired частный StrategyRepository StrategyRepository; @PostMapping("/strategy/user/{userId}/game/{gameId}") публичная стратегия creatStrategy( Стратегия стратегии @RequestBody, @PathVariable Целочисленный идентификатор пользователя, @PathVariable Целочисленный идентификатор игры ){ Стратегия newStrategy= creatStrategy(strategy, userId, gameId); вернуть новую стратегию; } } Я пробовал использовать @ToString.Exclude и @JsonIgnoreProperties(value = {"gameStrategies", "handler","hibernateLazyInitializer"},allowSetters = true) для всех объединяющихся отношений, но безрезультатно.
>
Я пытаюсь создать новую запись в базе данных, используя спящий режим Springboot, и когда я делаю запрос на публикацию, я получаю сообщение об ошибке внутреннего сервера 500 в почтовом ящике, в котором говорится, что у меня проблема с потоком стека.
@Data @Сущность публичный класс AppUser { @GeneratedValue @Идентификатор частный целочисленный идентификатор пользователя; личное имя пользователя String; личный строковый пароль; @OneToMany(mappedBy = "appUser") @ToString.Exclude частный список userStrategies; @Builder public AppUser (имя пользователя String, пароль String) { this.username = имя пользователя; this.password = пароль; } публичный AppUser(){} } @Entity @Данные общественный класс Game { @GeneratedValue @Идентификатор частный целочисленный идентификатор игры; частная строка gameName; частная строка gameDescription; @OneToMany(mappedBy = "игра") @ToString.Exclude частный список gameStrategies; публичная игра(){} @Builder public Game(String gameName, String gameDescription) { это.ИмяИгры = ИмяИгры; this.gameDescription = gameDescription; } } @Entity @Данные Стратегия публичного класса { @GeneratedValue @Идентификатор частный целочисленный идентификатор; частная строка StrategyName; частная строковая стратегияОписание; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn (referencedColumnName = «userId») @ToString.Exclude частный пользователь приложения appUser; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn(referencedColumnName="gameId") @ToString.Exclude частная игра; публичная стратегия(){} @Builder public Strategy(String StrategyName, String StrategyDescription, Game Game, AppUser appUser) { this.strategyName = имя стратегии; this.strategyDescription = StrategyDescription; this.appUser = appUser; this.game = игра; } } @Service публичный класс StrategyService { @Autowired частный GameRepository gameRepository; @Autowired частный AppUserRepository userRepository; @Autowired частный StrategyRepository StrategyRepository; public Strategy creatStrategy(Стратегия стратегии, Целочисленный идентификатор пользователя, Целочисленный идентификатор игры){ Игра game = gameRepository.findById(gameId).get(); Пользователь AppUser = userRepository.findById(userId).get(); Стратегия newStrategy = Strategy.builder() .strategyDescription(strategy.getStrategyDescription()) .strategyName(strategy.getStrategyName()) .game(игра) .appUser(пользователь) .строить(); StrategyRepository.save(newStrategy); вернуть новую стратегию; } } @RestController публичный класс StrategyController { @Autowired частный StrategyRepository StrategyRepository; @PostMapping("/strategy/user/{userId}/game/{gameId}") публичная стратегия creatStrategy( Стратегия стратегии @RequestBody, @PathVariable Целочисленный идентификатор пользователя, @PathVariable Целочисленный идентификатор игры ){ Стратегия newStrategy= creatStrategy(strategy, userId, gameId); вернуть новую стратегию; } } Я пробовал использовать @ToString.Exclude и @JsonIgnoreProperties(value = {"gameStrategies", "handler","hibernateLazyInitializer"},allowSetters = true) для всех объединяющихся отношений, но безрезультатно.
>
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
SIGSEGV из-за переполнения стека при рекурсивном создании экземпляра кортежа С++
Anonymous » » в форуме C++ - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-