Я только начинаю создавать свою схему JPA в веб-приложении Play Framework. У меня есть разумное понимание SQL, но я новичок в JPA, и меня сбивают с толку при первом препятствии.
Из руководств Play я предполагаю, что вы просто создаете свои классы Java, а JPA / Play автоматически создает схему для вас.
Итак, я хочу создать связь ManyToMany между двумя классами модели, Rankable и 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;
}
}
И другой класс:
@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;
}
}
Но я продолжаю получать следующую ошибку:
Произошла ошибка JPA (Невозможно построить
EntityManagerFactory): не удалось
определить тип для: java.util.Set, at
таблица: ранжируемая, для столбцов:
[org.hibernate.mapping.Column (теги)]
Что я делаю не так?