Ajuda com Hibernate

1 resposta
G

Boa tarde,
Estou com a seguinte dificuldade tenho uma tabela acesso que ela é uma tabela criada de um relacionamento de n para n entao ela recebe duas PKs e as mesmas sao FKs e estou com o problema como faço isso no hibernate se alguem pudesse me ajudar

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.md2net.gi.pojo">
  <class name="Acess" table="ACESSO"><id></id>
		<many-to-one name="codigoAplicacao" class = "Aplication" column = "COD_APLICACAO"></many-to-one>
		<many-to-one name="codigoFuncionario" class = "Employee" column = "COD_FUNCIONARIO"></many-to-one>
		<property name="login" type="string" column="LOGIN"></property>
		<property name="nome" type="string" column="NOME"></property>
		<property name="bloqueado" type="integer" column="BLOQUEADO"></property>
  </class>
</hibernate-mapping>

1 Resposta

Vini_Fernandes

Cara, tenho uma situacao semelhante onde um Usuario do meu sistema pode ter N Promocoes e uma Promocao pode ter N Usuario. Veja como fiz as tabelas:

create table usuario(
	id numeric(7) not null,
        nome varchar(30) not null,
	email varchar(60) default null,
	endereco varchar (120) not null,
	telefone varchar(15) not null,
	//outros campos
	constraint fk_idusuario1 foreign key (idgrupo) references grupo (id)
);

create table promocao(
	id numeric(7) not null,
	descricao varchar (60) not null,
	primary key (id),
	unique key (descricao)
);

//aqui eh definida a join table 
create table promocao_usuario(
	idpromocao numeric (7) not null,
	idusuario numeric (7) not null,
	constraint fk_promocaocliente1 foreign key (idpromocao) references promocao (id),
	constraint fk_promocaocliente2 foreign key (idusuario) references usuario (id)
);

Agora os arquivos de mapeamento:

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

<hibernate-mapping>
		<class name="br.com.vinicius.locadora.modelo.bean.Usuario" table="usuario">
			<id name="id" column="id">
				<generator class="increment"/>
			</id>
			<property name="nome" not-null="true"/>
			<property name="email"/>
			<property name="endereco"/>
			//outros campos
		
	        //mapeamento n:n das promocoes 
	<bag name="listaPromocao" table="promocao_usuario">
           <key column="idusuario"/>
           <many-to-many class="br.com.vinicius.locadora.modelo.bean.Promocao" column="idpromocao"/>
          </bag>
			
		</class>
</hibernate-mapping>

Arquivo de mapeamento da Promocao

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

<hibernate-mapping>
		<class name="br.com.vinicius.locadora.modelo.bean.Promocao" table="PROMOCAO">
			<id name="id" column="id">
				<generator class="increment"/>
			</id>
			<property name="descricao"/>
	//mapeando n:n dos usuarios
        <bag name="listaUsuario" table="promocao_usuario">
    		   <key column="idpromocao"/>
                    <many-to-many class="br.com.vinicius.locadora.modelo.bean.Usuario" column="idusuario"/>
        </bag>			
		</class>
</hibernate-mapping>

Espero ter ajudado

Criado 13 de outubro de 2009
Ultima resposta 13 de out. de 2009
Respostas 1
Participantes 2