Dúvidas em relacionamentos hibernate

alguém poderia me tirar algumas dúvidas com relação ao hibernate? Bom tenho 2 tabelas produtos e vendas com um relacionamento n:n que gerou uma tabela item_venda

eu fiz isso nos meus dois modelos para mapear:

Classe Produtos:

@Entity(name="Produtos") @Table(name = "produtos") public class Produtos {     @Id     @GeneratedValue     private Long codProduto;     @Column(name="preco_Venda")     private Double preco_Venda;     @Column(name="nome")     private String nome;     } 

a classe Venda:

@Entity(name="Venda") @Table(name = "venda") public class Venda {     @Id     @GeneratedValue     private Long codVenda;     @Column(name="data_venda")     private Date dataVenda;     @OneToOne(fetch = FetchType.LAZY)     @JoinColumn(name = "idCaixa")     private Caixa caixa;     @ManyToOne(cascade = CascadeType.ALL)      @JoinColumn(name="produtos_idVenda", referencedColumnName="idVenda",nullable=false)     private List<Lista_Produtos> listaProdutos; } 

bom eu não preciso ter essa minha tabela item_venda como uma classe

uma das minhas dúvidas é, com esse mapeamento o que eu precisaria para inserir um valor nessa tabela item_venda.

Outra dúvida é em relação a minha classe Produtos:

Eu precisaria por uma composição de Venda? ex:

private Venda venda;

//

ou eu precisaria criar + uma classe item_Venda

// para ilustrar meu relacionamento no banco de dados:

inserir a descrição da imagem aqui