Ho appena iniziato a creare il mio schema JPA in un'applicazione web Play Framework. Ho una ragionevole comprensione di SQL, ma sono un principiante JPA, e sono stato inciampato al primo ostacolo.Problema JPA di base: "Impossibile determinare il tipo per: java.util.Set"
Dall'esercitazione di Play presumo che tu crei solo le tue classi Java e JPA/Play creerà automaticamente lo schema per te.
Quindi voglio creare un rapporto ManyToMany tra due classi del modello, Rankable e Tag:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Rankable extends Model {
public String name;
private Set<Tag> tags;
@ManyToMany()
@JoinTable(name = "RANKABLE_TAGS")
public Set<Tag> getTags() {
return tags;
}
@ManyToMany()
@JoinTable(name = "RANKABLE_TAGS")
public void setTags(final Set<Tag> tags) {
this.tags = tags;
}
}
E l'altra classe:
@Entity
public class Tag extends Model {
public String name;
public String description;
private Set<Rankable> rankables;
@ManyToMany(mappedBy = "tags")
public Set<Rankable> getRankables() {
return rankables;
}
@ManyToMany(mappedBy = "tags")
public void setRankables(final Set<Rankable> r) {
rankables = r;
}
}
Ma continuo a ricevere il seguente errore:
A JPA error occurred (Unable to build EntityManagerFactory): Could not determine type for: java.util.Set, at table: Rankable, for columns: [org.hibernate.mapping.Column(tags)]
Cosa sto sbagliando?
ciò che fa apparire come modello? – kem
@kem - [Modello] (http://www.playframework.org/documentation/api/1.1.1/play/db/jpa/Model.html) è una delle classi del framework –
L'extra '}' in il tuo codice o solo un errore di pubblicazione? –