sql >> Database >  >> RDS >> Mysql

Hibernate - ManyToOne &Inheritance / JOINED / mappedBy

Ik denk niet dat je dit kunt bereiken door de ManyToOne koppeling aan User algemeen in de UserActivity entiteit. Dat is waarschijnlijk te verwarrend voor de PPV-provider (Hibernate).

In plaats daarvan denk ik dat je de koppeling moet toewijzen aan User in elke van de Question , Answer en Comment entiteiten. Ja, ik weet dat dat gedupliceerde code zou zijn, maar het lijkt erop dat de enige manier waarop u dan de OneToMany kunt kwalificeren toewijzingen in User met behulp van de mappedBy referentie.

Bijvoorbeeld uw Question entiteit zou een associatie hebben die is gedefinieerd als:

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

Afhankelijk van hoe slim (of niet) Hibernate is over de bovenstaande associatie, moet je mogelijk de table="USER_ACTIVITY" specificeren in de JoinColumn annotatie.

Dan de User zou de OneToMany hebben als:

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

Hetzelfde geldt voor elk van Answer en Comment .

Ik heb dit natuurlijk niet geprobeerd, dus ik kan het mis hebben.



  1. Analytics met MariaDB AX - tThe Open Source Columnar Datastore

  2. mysql gegevens doorgeven aan in

  3. mysql-server start MAMP niet

  4. Hoe maak ik permalinks die databasegestuurd zijn?