In Bezug auf diese Frage habe ich ausgecheckt Spring Data Rest Ambiguous Association Exception, aber konnte es nicht für mich arbeiten. Wie Sie in meinem Code unten sehen können, fügte ich @RestResource
Annotation mit rel
gleich einem anderen Wert hinzuSpring Data Rest: Erkannt mehrere Association Links mit der gleichen Beziehung Typ
ähnlich wie die oben gestellte Frage, POST-Anfragen arbeiten, aber GET-Anfragen Ausnahme über mehrere Assoziationsbeziehungen mit derselben Beziehung Typ werfen:
„schreiben kann nicht JSON: Erkannte mehrere Assoziationsbeziehungen mit gleichem Beziehungstyp ! Disambiguate association @ org.springframework.data.rest.core.annotation.RestResource (rel = createdBy, exportierte = true, Pfad =, [email protected]ription (Wert =)) @ javax.persistence.ManyToOne (optional = true, targetEntity = void, cascade = [], Fetch = EAGER) @ javax.persistence.JoinColumn (referencedColumnName = ASSIGNABLE_ID, nullable = false, einzigartig = false, name = CREATED_BY, aktualisierbare = true, Column =, [email protected] (name =, Wert = CONSTRAINT, foreignKeyDefinition =), Tabelle =, einfügbar = true) private com.ag.persistence.domain.PersonEntity com.ag.persistence.domain.TeamEntity.createdBei Verwendung von @RestResource! (über die Referenzkette: org.springframework.hateoas.PagedResources [\ "_ embedded \"] -> java.util.UnmodifiableMap [\ "persons \"] -> java.util.ArrayList [0]); verschachtelte Ausnahme ist com.fasterxml.jackson.databind.JsonMappingException: Mehrere Assoziationsverknüpfungen mit demselben Beziehungstyp erkannt! Vereinbaren Sie die Zuordnung @ org.springframework.data.rest.core.annotation.RestResource (rel = createdBy, exportierte = true, path =, [email protected]iption (Wert =)) @ javax.persistence.ManyToOne (optional = true, targetEntity = Leere, Kaskade = [], holen = EAGER) @ javax.persistence.JoinColumn (referencedColumnName = ASSIGNABLE_ID, nullable = false, einzigartig = false, name = CREATED_BY, aktualisierbar = true, columnDefinition =, [email protected] (name =, Wert = CONSTRAINT, foreignKeyDefinition =), Tabelle =, einfügbar = true) private com.ag.persistence.domain.PersonEntity com.ag.persistence.domain.TeamEntity.createdBy u sing @RestResource! (durch die Referenzkette: org.springframework.hateoas.PagedResources [\ "_ eingebettet \"] -> java.util.UnmodifiableMap [\ "Personen \"] -> java.util.ArrayList [0])“
der Fehler scheint in dieser Klasse zu geschehen.
@Entity
@Table(name = "team")
public class TeamEntity extends AssignableEntity {
private String name;
private LocalDateTime createdDate;
private LocalDateTime modifiedDate;
private Collection<MembershipEntity> memberships;
private PersonEntity createdBy;
private PersonEntity modifiedBy;
@Basic
@Column(name = "NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Basic
@Column(name = "CREATED_DATE")
public LocalDateTime getCreatedDate() {
return createdDate;
}
public void setCreatedDate(LocalDateTime createdDate) {
this.createdDate = createdDate;
}
@Basic
@Column(name = "MODIFIED_DATE")
public LocalDateTime getModifiedDate() {
return modifiedDate;
}
public void setModifiedDate(LocalDateTime modifiedDate) {
this.modifiedDate = modifiedDate;
}
@OneToMany(mappedBy = "team")
public Collection<MembershipEntity> getMemberships() {
return memberships;
}
public void setMemberships(Collection<MembershipEntity> memberships) {
this.memberships = memberships;
}
@RestResource(rel = "team_createdBy")
@ManyToOne
@JoinColumn(name = "CREATED_BY", referencedColumnName = "ASSIGNABLE_ID", nullable = false)
public PersonEntity getCreatedBy() {
return createdBy;
}
public void setCreatedBy(PersonEntity createdBy) {
this.createdBy = createdBy;
}
@RestResource(rel = "team_modifiedBy")
@ManyToOne
@JoinColumn(name = "MODIFIED_BY", referencedColumnName = "ASSIGNABLE_ID", nullable = false)
public PersonEntity getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(PersonEntity modifiedBy) {
this.modifiedBy = modifiedBy;
}
}
Ironischerweise ich nicht diese bestimmte Ressource bin Zugriff ich habe auch andere Ressourcen mit createdBy
und modifiedBy
- ist es das man dieses Problem verursacht
Hat eine andere Entität die Eigenschaft 'createdBy'? Die 'PersonEntity' zum Beispiel? – zeroflagL
Alle meine Entitäten haben die vier Felder: '' createdBy'', '' modifiedBy'', 'createdDate'' und' 'modifiedDate'' – Chad
Das könnte das Problem sein. Werfen Sie einen Blick auf [diese Frage] (http://stackoverflow.com/questions/24426644/spring-data-rest-detected-multiple-association-links-with-same-relation-type). Bei beiden 'PersonEntitys' in Ihrer' TeamEntity' wird wahrscheinlich ein Link 'createdBy' angezeigt. – zeroflagL