Как разместить записи реляционной базы данных oneToMany с помощью Spring Boot - PullRequest
0 голосов
/ 21 июня 2019

Как мне структурировать JSON POST, контроллер на моем бэкэнде и классы POJO?

Это для клона Twitter, чтобы пользователь мог иметь несколько твитов и т. Д.

POST

{ "tweet": "Sew one button, doesn't make u a tailor", "user": "Alex" }

Tweet Controller

    public Tweet createTweet(@RequestBody Tweet tweet) {
        return tweetRepository.save(tweet);
    }

Tweet Class

@Table(name = "tweets")
public class Tweet {

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

    @ManyToOne(cascade = CascadeType.PERSIST)
    private User user;

    ...

Пользовательский класс

@Table(name = "custom_user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name = "tweet_id")
    private List<Tweet> tweet = new ArrayList<>();

Этоответ, который я получаю

{
    "id": 1,
    "user": {
        "id": 2,
        "name": "Alex",
        "tweet": []
    },
    "tweet": "Sew one button, doesn't make u a tailor"
}

edit:

Если я выполняю GET на моей конечной точке пользователя, это то, что я получаю (должны быть включены соответствующие твиты)

[
    {
        "id": 2,
        "name": "Alex",
        "tweet": []
    }
]

1 Ответ

3 голосов
/ 21 июня 2019

Здесь:

{
    "id": 1,
    "user": {
        "id": 2,
        "name": "Alex",
        "tweet": []
    },
    "tweet": "Sew one button, doesn't make u a tailor"
}

Похоже, у вашего объекта Tweet есть атрибут твита, а у объекта User есть массив, который отображает каждый твит, связанный с этим пользователем, который в настоящее время пуст в примере.

Мне кажется, проблема в вашем двунаправленном отображении между Tweet и Пользователем. Попробуйте использовать свойство mappedBy для двунаправленных отношений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...