Dúvida no mapeamento @OneToMany [Resolvido]

2 respostas
Guevara

Oi pessoal!

Estou seguindo tutorial de Hibernate e estou com dúvidas no mapeamento @OneToMany, tenho uma classe Filme e uma classe Imagem, ao inserir a o filme vou inserir uma imagem, tudo no mesmo form, eu quero referenciar o caminho da imagem com o seu respectivo filme, tanto na gravação quanto na recuperação, pois desejo mostrar a imagem na JSP.

Esta é a classe Filme:

@OneToMany(mappedBy = "Filme", fetch = FetchType.EAGER)
	public List<Imagem> getUrlImagem() {
		return getUrlImagem();
	}

A classe Imagem:

@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	@Column(name="id_imagem")	
	private Long idImagem;
	@Column(name="nome_imagem")
	private String nomeImagem;
	@Column(name="url_imagem")
	private String urlImagem;


@ManyToOne
	@JoinColumn(name="id_filme",updatable=true,insertable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.ALL)
	private Filme filme;

Desta forma consigo obter a imagem do filme e mostrar na JSP?

Abraço!

2 Respostas

franciscossouza

Desta forma, um filme tem várias imagens :slight_smile:

Todo filme possuirá uma lista de imagens. Quando você fizer um select (sic), o Hibernate vai tratar de fazer um join (sic again) para trazer as imagens do filme neste select. Este comportamento é chamado de eager association. Note que quando você anotou o método com @OneToMany, você especificou que o fetch type seria EAGER. :wink:

Guevara

Essa era a idéia mesmo, pois se precisar criar uma galeria de imagens, teria que ser assim.
Obrigado pelo esclarecimento.
Abraço!

Criado 4 de abril de 2010
Ultima resposta 5 de abr. de 2010
Respostas 2
Participantes 2