sql >> データベース >  >> RDS >> Mysql

Hibernate-ManyToOne&Inheritance / JOINED /マップされたBy

    ManyToOneをマッピングすることでこれを達成できるとは思いません Userへの関連付け 一般的にUserActivityで 実在物。これは、JPAプロバイダー(Hibernate)にとっておそらく混乱しすぎます。

    代わりに、関連付けをUserにマッピングする必要があると思います それぞれQuestionの 、Answer およびComment エンティティ。はい、重複したコードになることは承知していますが、OneToManyを修飾できる唯一の方法のようです。 Userでのマッピング mappedByを使用する 参照。

    たとえば、Question エンティティには、次のように定義された関連付けがあります:

    @ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
    @JoinColumn(name = "ua_user_id")
    private User questionUser;
    

    Hibernateが上記の関連付けについてどれほど賢いか(またはそうでないか)によっては、table="USER_ACTIVITY"を指定する必要がある場合があります。 JoinColumn内 注釈。

    次に、User OneToManyは次のようになります:

    @OneToMany(mappedBy="questionUser", cascade = REMOVE)
    private List<Question> questions = new ArrayList<>();
    

    同様に、Answerごとに およびComment

    もちろん、私はこれを試したことがないので、間違っている可能性があります。



    1. GoogleCloudSQLのoptimizer_search_depth

    2. mysql CONCAT()AS名?

    3. MySqlワークベンチクエリ履歴(最後に実行されたクエリ/クエリ)、つまり、テーブルの作成/変更、選択、更新クエリの挿入

    4. IRIWorkbenchでのデータレプリケーション