2016-05-24 10 views
0

Ich habe eine Hibernate-Entity mit dem Namen Article. Aus einer Datenbankperspektive möchte ich die nächste Kapitel-ID und die vorherige Kapitel-ID in derselben Tabelle speichern. To-One-Beziehungen der Tabelle mit sich selbst und nextArticleId und previousArticleId sind Fremdschlüssel aus der gleichen Tabelle.Hibernate-Entity mit mehr als einer Eigenrelation (rekursive Relationen)

Meine Frage ist, gibt es eine vorgeschlagene Möglichkeit, mit der Situation beim Erstellen einer Hibernate-Entität dafür umzugehen? oder behandle ich das einfach als zwei normale Eins-zu-Eins-Beziehungen und habe einfach zwei verschiedene Article Objekte innerhalb der Article Einheit, um den nächsten Artikel und den vorherigen Artikel darzustellen?

Grüße,

Antwort

1

Frage:

Ist das gibt es eine vorgeschlagene Art und Weise mit Situation umgehen, wenn eine Hibernate Einheit für diese zu schaffen?

Antwort:

Treat dies als zwei normale Eins-zu-Eins-Beziehungen und haben nur zwei verschiedene Artikel Objekte innerhalb des Artikels

1

Es ist eine normale Art und Weise zu haben, solche Zuordnung

class Article { 

    @OneToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "fk_article_prev") 
    private Article previouse; 

    @OneToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "fk_article_next") 
    private Article next; 

} 
+0

Dank v.ladynev, ich wollte nur wissen, dass es so ist in Hibernate speziell dafür. –

+1

@Tefa Ich denke nein. Denken Sie daran, dass Hibernate den Cache der ersten Ebene ("Session") verwendet, um keinen zusätzlichen Artikel zu erstellen. –