SortedSet mit Comparator als Bean-Property mit ManyToMany Beziehung erzeugt Exception

Zongatel

Mitglied
Hallo,
ich habe einen Bean, der in einer ManyToMany Beziehung zu einemanderen Bean steht.
Dazu verwende ich ein Set, wie auf einer Seite ich es empfohlen bekam. Das ganze funktioniert ganz prima.
Nun wollte ich keine undeterministische Reihenfolge beim auflisten der Elemente haben, und wandelte das ganze zu einem SortedSet
für zumindest einen der Beans.
Nun bekomme ich in einen der automatisierten Tests von Spring folgenden Fehler
Caused by: org.hibernate.AnnotationException: A sorted collection must define and ordering or sorting : de.cmk.todo.restservices.staffmanager.Mitarbeiter.skills
Mir ist nicht ganz klar was ich da nun machen soll, ich habe doch einen netten Comparator für das TreeSet gebastelt, wo ist das Problem und was muss man da machen?
h
[CODE lang="java" title="Mitarbeiter.java"]import java.util.Comparator;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import de.cmk.todo.restservices.skillmanager.Skill;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name= "\"mitarbeiter\"", schema = "\"projekt-skill-verwalter\"")
public class Mitarbeiter {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "staff_generator")
@SequenceGenerator(name="staff_generator", sequenceName = "projekt-skill-verwalter.seq_mitarbeiter", allocationSize=1)
@EqualsAndHashCode.Include
@Column(name="mitarbeiter_id")
private Long id;
@Column(name="vorname")
@JsonProperty("firstname")
private String vorName;
@Column(name="nachname")
@JsonProperty("familyname")
private String nachName;

@JsonIgnoreProperties("mitarbeiter")
@ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.DETACH })
@JoinTable(name = "skill_mitarbeiter",
joinColumns = {
@JoinColumn(name = "mitarbeiter_id", referencedColumnName = "mitarbeiter_id",
nullable = false, updatable = false)},
inverseJoinColumns = {
@JoinColumn(name = "skill_id", referencedColumnName = "skill_id",
nullable = false, updatable = false)})
private final SortedSet<Skill> skills = new TreeSet<>(new Comparator<>() {

@Override
public int compare(Skill o1, Skill o2) {
int rc = 0;
if (o1!=null)
{

if (o2!=null)
{
rc = o1.getName().compareTo(o2.getName());
}
else
{
rc = 1;
}
}
else if (o2!=null)
{
rc = -1;
}
else
{
rc =0;
}
return rc;
}

});[/CODE]

Interessanterweise, wenn ich aus dem SortedSet wieder ein Set mache, und es bei dem sortierten TreeSet belasse, bekomme ich zwar was gerell funktionierendes, aber die Reihenfolge der Skills ist auch wieder nicht vorhersehbar.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Spring Data: Modellierung mit einer Embeddable bean Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring Boot und JPA Error creating bean Frameworks - Spring, Play, Blade, Vaadin & Co 24
8u3631984 required a bean of type 'java.lang.String' that could not be found. Frameworks - Spring, Play, Blade, Vaadin & Co 8
D Spring Unit Test: UnsatisfiedDependencyException: Error creating bean with name Frameworks - Spring, Play, Blade, Vaadin & Co 2
R Spring MVC -> Bean im Front-End ( Tomcat ) und Back-End teilen. Frameworks - Spring, Play, Blade, Vaadin & Co 5
C Spring findet Bean nicht Frameworks - Spring, Play, Blade, Vaadin & Co 0
B Spring bean initialisierungs probleme Frameworks - Spring, Play, Blade, Vaadin & Co 0
R Spring kann Bean über Konstruktor nicht erstellen Frameworks - Spring, Play, Blade, Vaadin & Co 9
J spring kann eine bean nicht erzeugen Frameworks - Spring, Play, Blade, Vaadin & Co 2
A Java Bean Validation und Spring Webflow Frameworks - Spring, Play, Blade, Vaadin & Co 0
J Spring: Referencing Bean mit NoSuchBeanDefinitionException Frameworks - Spring, Play, Blade, Vaadin & Co 0
M Spring: Den Context einer bean auslesen... Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Bean aus Datei referenzieren? Frameworks - Spring, Play, Blade, Vaadin & Co 2
K Spring IoC: Bean mit typisierter Collection Frameworks - Spring, Play, Blade, Vaadin & Co 4

Ähnliche Java Themen


Oben