2017-02-14 2 views
1

Um direkt auf den Punkt zu kommen, versuche ich die folgende Logik zu Hibernate Beziehungen zu bauen.Wie behandelt man das einzigartige Feld, das durch den Ruhezustand generiert wurde?

Eine Ressource hat viele Lesegruppen.

Eine Ressource hat viele Schreibgruppen.

Beide Gruppen sind Gruppen-Klasse.

Was ich tat, bis jetzt:

ResourcePage.class

public class ResourcePage { 
    /* 
    useless code 
    */ 
    private Set read; 
    private Set write; 
    @OneToMany(cascade = CascadeType.ALL, 
    fetch = FetchType.EAGER, 
    targetEntity = Groups.class) 
    @JoinTable(name = "resourcepage_read_permissions") 
    public Set getRead() { 
    return read; 
    } 

    @OneToMany(cascade = CascadeType.ALL, 
    fetch = FetchType.EAGER, 
    targetEntity = Groups.class) 
    @JoinTable(name = "resourcepage_write_permissions") 
    public Set getWrite() { 
    return write; 
    } 
    /* 
    useless code 
    */  
} 

Die Tabellen erstellt wird, wie erwartet.

enter image description here

jedoch Hibernate ist die Erzeugung eine eindeutige Einschränkung zu id Gruppe und diese mir ein großes Problem geben, weil manchmal zwei verschiedene Ressourcen gleiche Gruppe wie las Gruppe sein können.

enter image description here

Wie geht ihr damit? Wie kann ich Hibernate nicht diese einzigartige Einschränkung erzeugen?

Vielen Dank.

+0

Jungs, das war ein Fehler, den ich begangen habe, mit '@ manytomany' Beziehung statt' @ onetomany' kann das Problem lösen. –

Antwort

0

Sie müssen @ManyToMany statt @OneToMany verwenden.

+0

Ich habe das schon bemerkt, aber Sie waren schnell das Problem zu identifizieren. Danke vielmals. –

Verwandte Themen