Relacionamento Many-to-One

3 respostas
R
Tenho o codigo
try {
			// SessionFactory deve ser criado uma única vez durante a execução
			// da aplicação
			SessionFactory sf = new Configuration().configure(
					"/hibernate.cfg.xml").buildSessionFactory();
			Session session = sf.openSession(); // Abre sessão
			Transaction tx = session.beginTransaction(); // Cria transação
			
			Curso curso = new Curso();
			curso.setNome("Quimica");
			curso.setSigla("Qui");		
			
			
			Aluno aluno1 = new Aluno();
			aluno1.setNome("Aluno1");
			aluno1.setCpf(123);
			aluno1.setCurso(curso);
			
			Aluno aluno2 = new Aluno();
			aluno2.setNome("Aluno2");
			aluno2.setCpf(123);
			aluno2.setCurso(curso);		
			
			Collection<Aluno> alunos = new HashSet<Aluno>();
			alunos.add(aluno1);
			alunos.add(aluno2);			
           
			curso.setAlunos(alunos);
			
			session.saveOrUpdate(curso);		
			
			tx.commit(); // Fecha transação
			session.close(); // Fecha sessão

		} catch (HibernateException e1) {
			e1.printStackTrace();
		}

estou salvando apenas o objeto curso, o que nao compreendo eh pq precisa eu tambem salvar os alunos (acrescentar session.save(aluno1) e acrescentar session.save(aluno2)) sendo que o objeto curso jah contem os dois alunos?

O que nao entendi foi a logica...

Quero saber se apenas adicionando todos os objetos em Curso e salvando apenas o curso se tem como o hibernate fazer o resto, ou seja salvar os alunos tb...

Rafael Oliveira

3 Respostas

vanderlanio

no seu arquivo hbm configure a propriedade ‘cascade’ . !

marcelo_mococa

você deve informar para o hiberante salvar em cascata este relacionamento.

Basta configurar o atributo cascade do relacionamento.

R

resolvido vanderlanio , valeu pela forca!!!!

faltou coloca o cascade="save-update"...

segue o codigo pra fim de apredizado de terceiros

<?xml version="1.0"?>
<!-- Mapeamento da entidade aluno -->
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="entidade">
	<class name="Curso" table="CURSO">
		<id name="id" column="ID_CURSO" type="int">
			<generator class="sequence">
				<param name="sequence">curso_seq</param>
			</generator>
		</id>
		<property name="codigo" />
		<property name="nome" />
		<property name="sigla" />
		<set name="alunos" inverse="true" cascade="save-update">
			<key column="ID_CURSO" />
			<one-to-many class="Aluno" />
		</set>
	</class>
</hibernate-mapping>
Criado 28 de junho de 2007
Ultima resposta 28 de jun. de 2007
Respostas 3
Participantes 3