20211125 TIL-JPAでテーブルにサインしてみます


久しぶりに帰ってきたTIL


今回3つ目のプロジェクトはSpringを利用してプロジェクトを行います
Flaskでプロジェクトを行うときとは違って、いろいろ考えなければならないことがあります.
たとえば、テーブル構成やテーブル間の結合などです.🤯🤯
机の上でどんな色を使うのは難しくない.
私の最大の問題はサインです
これもあれも正しい.🤑🤑
投稿とコメントの関係
仮定1)
1つの投稿にいくつかのコメントを加える1:N
投稿の立場でOneToManyすればいいんじゃないですか?
仮定2)
複数のコメント1つの投稿N:1
コメントの観点から見るManyToOne
仮定3)
投稿とコメントは互いに相手のルールを理解するため,双方向マッピングを行う.
想像の翼を広げて🤯🤯
実は私たちのチームのコードは双方向マッピングで実現されていますが、私もやりたいので、必ず成功したいと思っています.
投稿エンティティArticleに投稿リストList<Comment>を作成し、投稿エンティティCommentArticleオブジェクトを作成し、get、postを実装する
紆余曲折を経て,ついに実現した.
apiをテストするとコメントの中にコメントの中にあります...🙃😐
無限のサイクルから抜け出せない.😢😢
48時間以上も苦しんでいた私は、グーグルで解決する意志さえなかった.
より簡単に開始するために、投稿はコメントリスト付きで実現されました.
私は招待状の情况を知ってみたことがあって、最初はただ生成して、招待状と関连することができなくて、だから私はどうしてこのようにすると思います...
投稿にコメントリストを追加しなかったようです.CommentServiceからfindByIdまで、投稿のID値を検索し、投稿が存在する場合は、新しいコメントを生成して保存し、投稿が所有するcommentListに追加して、私の望む結果を得ました!
    public Comment createComment(CommentRequestDto requestDto, Article article) {
        articleRepository.findById(article.getArticleId()).orElseThrow(
                () -> new NullPointerException("해당 아이디가 존재하지 않습니다.")
        );
        Comment comment = Comment.builder()
                .content(requestDto.getContent())
                .build();

        commentRepository.save(comment);
        article.getCommentList().add(comment);
        return comment;

    }
テスト結果は以下の通りです.

私のコードは正解ではありませんが、できて嬉しいので、ずっとテストしています.😆😆
実装された私たちのチームのコードがより良いコードなのか、それとも私が書いたコードがより良いコードなのか、今は私にとって重要ではありません.
これは職業開発者ではなく、学習の過程だと思います.サマーキャンプに参加する過程で、経験の曲折が多ければ多いほど、私はもっと良い開発者になります.
双方向マッピングが必要かどうかはまだ考えていますが、一つのことができたら、次のこともできるような気がします!
昨日、同じ問題で頭が痛いカンプさんと知り合って、彼が成功したという大きなニュースを聞いて、私は倍に喜んだ.👏🏻👏🏻
疲れた木曜日には、幸せに眠れる夜になると思います.🤣🤣
最後に、昨夜は助かりました.🙇🏻‍♀️🙇🏻‍♀️