SpringMVC + Hibernate - dúvida com tabela associativa

Pessoal,

Tenho uma lista de Product. A cada objeto Product um ou mais objetos Label podem estar associados e um mesmo Label pode estar associado a mais de um Product.

Como é uma relação de muitos para muitos, preciso de uma tabela associativa, certo?

Gostaria de, partindo de um Product, listar todos os Label que tenho cadastrados e selecionar os que necessito para o Product em questão.

A classe abaixo funcionaria para essa implementação?

[code]import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;

import .BasePojo;

@Entity
public class ProductLabel extends BasePojo {

@ManyToMany
@JoinColumn(name = "id_product")
private Set<Product> products = new HashSet<Product>();

@ManyToMany
@JoinColumn(name = "id_label")
private Set<Label> labels = new HashSet<Label>();

   // getters & setters

}[/code]

Seu relacionamento precisa ser bidirecional?
Caso contrário, crie uma lista em Product e mapeie os labels (Label) como one-to-many:

@OneToMany private Set<Product> labels = new HashSet<Product>(); Você não precisará do objeto representando a tabela associativa.

Caso você precise mapear o relacionamento de forma bidirecional, veja o exemplo:
http://forum.mentaframework.org/posts/list/1666.page