T
tuxedo
Gast
Hallo zusammen,
hab hier ein kleines Problem:
Ich hab zwei Entities:
Service hat einen Namen, und kann mehrere "Methoden" haben.
Die Methoden haben auch einen Methodennamen und können genau einem Service angehören.
Beides soll/ist "bidirectional" ausgelegt (sein).
Nun, von dern Services will ich keine doppelten haben. Also hab ich den Service Namen als "unique constraint" definiert. -> Funktioniert.
Und da ich die Services auch einzeln, getrennt von den Methoden haben will, hab ich das eben als extra Entitiy angelegt und mit der Entity für die Methoden verknüpft.
Methodennamen dürfen prinzipiell schon doppelt auftreten. Aber nicht innerhalb eines Service.
Das hier wäre okay:
meinService1.meineMethode1
meinService1.meineMethode2
meinService2.meineMethode1
meinService2.meineMethode2
Das hier nicht:
meinService1.meineMethode1
meinService1.meineMethode1
JPA mag es aber scheinbar nicht wenn man eine ManyToOne Beziehung auch noch als "unique constraint" macht. Ich bekomm ne Fehlermeldung:
Gibt da einen Weg drum rum? Oder muss ich das zwingend ganz anders aufbauen?!
hab hier ein kleines Problem:
Ich hab zwei Entities:
Java:
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"service"})})
public class EmService implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
private String service;
@OneToMany(mappedBy="service")
private List<EmServiceMethod> methods = new ArrayList<EmServiceMethod>();
// getter und setter
}
Java:
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"method", "service"})})
public class EmServiceMethod implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
private String method;
@ManyToOne(optional=false)
private EmService service;
// getter und setter
}
Service hat einen Namen, und kann mehrere "Methoden" haben.
Die Methoden haben auch einen Methodennamen und können genau einem Service angehören.
Beides soll/ist "bidirectional" ausgelegt (sein).
Nun, von dern Services will ich keine doppelten haben. Also hab ich den Service Namen als "unique constraint" definiert. -> Funktioniert.
Und da ich die Services auch einzeln, getrennt von den Methoden haben will, hab ich das eben als extra Entitiy angelegt und mit der Entity für die Methoden verknüpft.
Methodennamen dürfen prinzipiell schon doppelt auftreten. Aber nicht innerhalb eines Service.
Das hier wäre okay:
meinService1.meineMethode1
meinService1.meineMethode2
meinService2.meineMethode1
meinService2.meineMethode2
Das hier nicht:
meinService1.meineMethode1
meinService1.meineMethode1
JPA mag es aber scheinbar nicht wenn man eine ManyToOne Beziehung auch noch als "unique constraint" macht. Ich bekomm ne Fehlermeldung:
Caused by: org.hibernate.AnnotationException: Unable to create unique key constraint (method, service) on table EmServiceMethod: service not found
Gibt da einen Weg drum rum? Oder muss ich das zwingend ganz anders aufbauen?!