Salvando many-to-many no Hibernate

0 respostas
ufocruz

Alguém pode dar uma ajuda?
Seguinte, tenho um usuário que tem uma lista de rads. Depois de entrar em uma tela onde seleciono novas rads para o usuário, faço a adição das rads na lista de rads do usuário e salvo. Acontece que não salva e não aparece erro. Já tentei de tudo e nada.

Aí vai o método e os mapas:

public void associarRads(Long idUsuario, IdsSelecionadosForm idsForm) throws ParseException {
		
		Session session = SessionFactory.getInstance().openSession();
		Transaction tx = session.beginTransaction();
		
		Usuario usuario = (Usuario)session.get( Usuario.class, idUsuario );
		
		
		for(int i = 0; i < idsForm.getIds().length; i++) {
			Rad rad = (Rad) session.get(Rad.class,(Long)HttpToJava.convert(idsForm.getIds()[i], Long.class));
			if(!usuario.getRads().contains(rad)) {
				usuario.addRad(rad);
			}
			
		}

		session.saveOrUpdate(usuario);
		tx.commit();
		session.flush();
		session.close();

	}
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping
>
    <class
        name="tj.rj.emerj.controleAcesso.model.Usuario"
        table="USUARIO"
        lazy="false"
        mutable="false"
    >

        <id
            name="id"
            column="ID_USUARIO"
            type="long"
        >
        </id>

        <property
            name="nome"
            column="NOME"
            type="string"
            not-null="true"
        />
        
        <property
            name="login"
            column="LOGIN"
            type="string"
            not-null="true"
        />

        <set name="papeis" table="USUARIO_PAPEL" lazy="true" inverse="true">
            <key column="ID_USUARIO" />
            <many-to-many class="tj.rj.emerj.controleAcesso.model.Papel" column="ID_PAPEL" />
        </set>

		<bag name="rads" table="USUARIO_RAD" lazy="false" cascade="all">
            <key column="ID_USUARIO" />
            <many-to-many class="tj.rj.emerj.controleAcesso.model.Rad" column="ID_RAD" />
        </bag>
        
    </class>

</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping
>
    <class
        name="tj.rj.emerj.controleAcesso.model.Rad"
        table="RAD"
        lazy="false"
        mutable="false"
    >

        <id
            name="id"
            column="ID_RAD"
            type="long"
        >
        </id>

        <property
            name="nome"
            column="NOME"
            type="string"
            not-null="true"
        />

    </class>

</hibernate-mapping>

Uma ajuda please!!!!!

Criado 20 de novembro de 2008
Respostas 0
Participantes 1