Ich versuche, zwei Objekte mithilfe einer ManyToMany
Zuordnung zuzuordnen, aber aus irgendeinem Grund scheint Hibernate verwirrt zu werden, wenn ich die Eigenschaft mappedBy verwende über genau das, was ich kartiere. Das einzig Seltsame an meiner Zuordnung ist, dass die Zuordnung in einem Primärschlüsselfeld in einem der Einträge nicht erfolgt (das Feld ist jedoch eindeutig).Hibernate schlägt fehl, indem der Name der Eigenschaft Fully qualified für den Namen der Eigenschaft ManyToMany-Verknüpfung vorangestellt wird
Die Tische sind:
Sequence (
id NUMBER,
reference VARCHAR,
)
Project (
id NUMBER
)
Sequence_Project (
proj_id number references Project(id),
reference varchar references Sequence(reference)
)
Die Objekte aussehen (Anmerkungen auf dem Getter sind, setzen sie auf den Feldern etwas zu kondensieren):
class Sequence {
@Id
private int id;
private String reference;
@ManyToMany(mappedBy="sequences")
private List<Project> projects;
}
Und die besitzende Seite:
class Project {
@Id
private int id;
@ManyToMany
@JoinTable(name="sequence_project",
[email protected](name="id"),
[email protected](name="reference",
referencedColumnName="reference"))
private List<Sequence> sequences;
}
Dieser schlägt mit einem MappingException:
Immobilien-ref [_test_local_entities_Project_sequences] nicht auf Einheit gefunden [test.local.entities.Project]
Es scheint, den vollständig qualifizierten Klassennamen von Unterstrichen geteilt weirdly Zierer. Wie kann ich das vermeiden?
EDIT: Ich spielte mit diesem ein bisschen mehr. Ändern des Namens des mappedBy Eigenschaft eine andere Ausnahme ausgelöst, und zwar:
org.hibernate.AnnotationException: mappedBy Referenz eine unbekannte Zieleinheit Eigenschaft: test.local.entities.Project.sequences
So Die Annotation wird korrekt verarbeitet, aber irgendwie wird die Eigenschaftsreferenz der internen Konfiguration von Hibernate nicht korrekt hinzugefügt.
mag wie eine SQ scheinen aber hat Projekt öffentliche getSequences und öffentlichen setSequences auf sie? – Affe
@Affe Ich werde doublecheck, ich denke derzeit ist es öffentlich/geschützt. – wds
Nur für den Fall, was passiert, wenn Sie die Eigenschaft 'sequences' in etwas anderes umbenennen, z. 'foo'? –