Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bidirektionale Beziehungen modellieren, generieren und ggf. fixen #249

Open
xdoo opened this issue Mar 9, 2018 · 4 comments
Open

Bidirektionale Beziehungen modellieren, generieren und ggf. fixen #249

xdoo opened this issue Mar 9, 2018 · 4 comments
Assignees
Milestone

Comments

@xdoo
Copy link
Collaborator

xdoo commented Mar 9, 2018

Bei bidirektionalen Referenzen muss darauf geachtet werden, dass beim Speichern und Updaten der Entitäten beide Seiten eine Referenz auf jeweils den anderen haben. Wenn dies bereits der Fall ist, dann kann dieses Ticket geschlossen werden, falls nicht, dann muss es gefixt werden.

Mehr zu dem Thema auf #212

@xdoo xdoo added this to the RefArch_2.0 milestone Mar 9, 2018
@FabianWilms
Copy link
Collaborator

Zu deiner Ursprünglichen Frage:

Weder wird es in Barrakuda automatisch generiert, noch ist es eplizit modellierbar, noch habe ich es bisher in Spring nicht umgesetzt.

Wenn ich bisher die Relationsbeziehungen einer relationierten (?) Entität finden wollte, bietet Spring dafür Unterstützung in den Repositories, z.B: findAnimalsByKeeperOID (oder so ähnlich ;)).

@FabianWilms
Copy link
Collaborator

Ich denke aber, dass es ausreichen sollte, in beiden Entitäten die gleiche Join-Table anzugeben. Bin mir sicher, dass JPA/Hibernate das korrekt handhabt.

@xdoo
Copy link
Collaborator Author

xdoo commented Mar 16, 2018

@FabianWilms :)

@Dr-Thomas-Tensi
Copy link
Collaborator

Das Problem tritt auf, weil es in der AWK-DSL von Barrakuda keine expliziten Assoziationen gibt, sondern nur Links via Attributen zwischen Typen.

Um Relationen zu emulieren (und das löst auch obiges Problem), könnte man die AWK-DSL dahingehend erweitern, dass man bei einem Attribut angibt, welches Attribut im Partnertyp die Rückreferenz bildet.

Also z.B.

entity animal {
        ...
        keeperList manyToMany keeper backref animalList;
        ...
}

Die genaue Syntax ist natürlich zu überlegen.

Auf jeden Fall klappt das für binäre Assoziationen (ich habe früher schon mal eine entsprechende DSL gebaut), für n-äre wird es etwas unhandlich, weil man alle Partnerattribute angeben muss (und das gilt dann für alle Partnertypen).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants