Duvida Hibernate - Relacionamento de Tabelas

Bom tenho o seguinte problema , estou tendo duvidas na hora de Mapear minhas tabelas no Hibernate ,
eu sei oque quero fazer mais estou me confundindo , nao estou conseguindo ussar corretamente a ferramenta.
PS*(Comecei ussar Hibernate agora , desde ja desculpe pela simples duvida)

Ok Vamos lá

Tenho Três Tabelas/Classes Produto , Movimentação (que pode ser compra ou venda de um Produto) , e Relacionamento

Pelo que pensei tenho que ter uma FK de Produto e Movimentação em Relacionamento , para que depois eu consiga trazer todos os dados Ussando a Classe Relacionamento

ok!

.Minha Classe Relacionamento :

@Entity
public class Relacionamento {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer codigo;
	@Column
	private Integer quantidadeProdutos;
	@ManyToOne //Many -Produtos - para - Lista = ONE - Seria isto? Em um Relacionamento Muitos Produtos podem conter 1 lista por vez;
	@JoinColumn(name = "codigo_Produto")
	private List<Produtos> conjuntoDeProdutos;a
	@OneToMany//e na minha movimentação , só posso ter um tipo de movimentação[VENDA ou COMPRA] seria @OneToMany
	@JoinColumn(name = "codigo_Movimentacao")
	private Movimentacao movimentacao;

}

Minha classe Produto

@Entity
@Table(name = "PRODUTOS")
@NamedQueries(value = { @NamedQuery(name = "Produtos.RecuperaPorDesc", query = "from Produtos p where p.descricao= :desc") })
public class Produtos {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer codigo;

	@Column
	private String descricao;

	@Column
	private String tipoUnidade;

	@Column
	private Double precoUnidade;
	@ManyToOne //Muitos Produtos podem ser colocados la na minha lista do relacionamento.. Seria Isto?
	@JoinColumn(name = "codigo_Relacionamento")
	private Relacionamento relacionamento;

Minha Classe Movimentacao

@Entity
public class Movimentacao {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private String codigo;
	@Column
	private String tipoMovimentacao;
	@Column
	private Date data;
	@OneToOne
	@JoinColumn(name = "codigo_Relacionamento")
	private Relacionamento relacionamento;

**Getters e Setters Ocultados.

Está Dando erro na hora de criar as tabelas no banco , ja chequei a conexao, e mapeamento das entidades no XML …
o relacionamento seria este mesmo?