В MHO это типичный случай, когда требуется соотношение @ManyToMany
.
Если вы используете Join Table, вы можете иметь в своем классе Article что-то вроде.
@ManyToMany
@JoinTable(name="TAG_ARTICLE",
joinColumns=@JoinColumn(name="ARTICLE_ID"),
inverseJoinColumns=@JoinColumn(name="TAG_ID"))
private Collection<Tag> tags;
Тогда в вашем классе тегов
@ManyToMany(mappedBy="tags")
private Collection<Article> articles;