sql >> Databáze >  >> RDS >> Mysql

Hibernate - ManyToOne &Inheritance / PŘIPOJEN / mappedBy

Nemyslím si, že toho dosáhnete mapováním ManyToOne přidružení k User obecně v UserActivity entita. To je pravděpodobně pro poskytovatele JPA (Hibernate) příliš matoucí.

Místo toho si myslím, že musíte namapovat přidružení na User v každém Question , Answer a Comment entity. Ano, vím, že by se jednalo o duplicitní kód, ale zdá se, že jediný způsob, jak pak budete moci kvalifikovat OneToMany mapování v User pomocí mappedBy odkaz.

Například vaše Question entita by měla přidružení definované jako:

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

V závislosti na tom, jak chytře (či ne) Hibernate je ohledně výše uvedeného přidružení, možná budete muset zadat table="USER_ACTIVITY" v JoinColumn anotace.

Poté User by měl OneToMany jako:

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

Podobně pro každou z Answer a Comment .

Samozřejmě jsem to nezkoušel, takže se mohu mýlit.



  1. Jak exportovat schéma MySQL s daty?

  2. Jak spustit příkaz MySQL ze skriptu shellu?

  3. MYSQL:DECIMAL s přesností na 10 číslic za čárkou

  4. IDENT_CURRENT vs @@IDENTITY vs SCOPE_IDENTITY v SQL Server:Jaký je rozdíl?