EclipseLink/JPA - @OneToMany Backpointer Kardinalität Fehler

Ich versuche zu generieren, die eine unidirektionale eins-zu-viele-Zuordnung zwischen den beiden JPA-Entitäten. In meinem ChatRoom Klasse, ich habe eine Vector<User> Typ object, stellt Users in einem ChatRoom. Ich bin versuchen, um eine eins-zu-viele-Zuordnung, basierend auf userId (in der User Klasse). Hier ist mein Beispielcode:

@Entity
public class ChatRoom {
    @Id
    @GeneratedValue
    private int chatRoomID;

    @OneToMany(mappedBy="userID")
    private Vector<User> users;

    //A no-argument constructor is required for EclipseLink to instantiate the persistence object properly.
    public ChatRoom() {}

    //Getter/Setter section
}

Hier ist die User-Klasse:

@Entity
public class User {
    @Id
    @GeneratedValue
    private int userID;

    private String username;

    //Getter/Setter section
}

Wenn ich versuche, um die Tabellen zu erzeugen, die aus diesen entities in Eclipse bekomme ich die folgende Fehlermeldung:

Internal Exception: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [ChatJPA] failed.
Internal Exception: Exception [EclipseLink-7244] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
Exception Description: An incompatible mapping has been encountered between [class iosoa.entity.ChatRoom] and [class iosoa.entity.User]. This usually occurs when the cardinality of a mapping does not correspond with the cardinality of its backpointer.
    at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:126)

Haben Sie irgendwelche Ideen auf, wie dieses problem zu beheben? Vielen Dank für Ihre Hilfe.

  • link enthält eine Antwort, wie Sie tun, also mit @JoinTable, aber in meinem Fall, bekomme ich die folgende Fehlermeldung: Exception Description: The attribute [users] is not declared as type ValueHolderInterface, but its mapping uses indirection. Mapping: org.eclipse.persistence.mappings.UnidirectionalOneToManyMapping[users]
InformationsquelleAutor Nick Ruiz | 2011-02-06
Schreibe einen Kommentar