Objeto sem id - Hibernate

9 respostas
andre_guitar7

Eu tenho uma estrutura do Hibernate:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="org.mentawai.authorization.Group" table="person_groups">
		<id name="id">
			<generator class="increment"/>
		</id>
		<property name="name"
				  column="g_name"/>
		<many-to-one name="person"
					 column="person_id" 
					 cascade="all"
					 lazy="false"
			         class="br.com.comunidadebetel.bean.human.Person"/>
	</class>
</hibernate-mapping>

Só que na verdade eu não tenho e não posso criar um atributo id no meu objeto Group... como poderia fazer?

vlw

9 Respostas

danieldestro

Seu objeto não tem uma chave?

andre_guitar7

Ele é do Mentawai, tá aqui.

_fs

Não pode criar uma subclasse?

andre_guitar7

Posso, mas não tem como armazenar esse objeto no Hibernate sem uma chave?

danieldestro

E porque você gravaria um objeto Group do Mentawai?
Me parece que o atributo name é a chave dele.

andre_guitar7

Pq uma pessoa está em um grupo ou grupos, pra saber o grupo que a pessoa pertence, tenho que gradar informações no banco, ou seja, a pessoa e o grupo… já tem um objeto Group para administração de autorização de usuários no Mantawai…

será?

danieldestro

Por que, poderia ter dois grupos com o mesmo nome?

andre_guitar7

É… resolvido…

vlw

saoj

Se vc vai ter um relacionamento no banco usuario -> grupo, então de repente é melhor criar um ID único para cada grupo a fim de relacionar por ID ao invés de por string. Se bem que relacionar por string tb dá, mas não é lá uma boa prática.

Usa herança e cria um ID para o grupo, além do nome que já existe.

Herança é tudo. Não dá para viver sem quando o assunto é flexibilidade.

Cria uma subclasse que chama super(name) e depois salva um id internamente.

E se vc quiser ser mais certinho ainda com as boas pratica, dá um override em equals e hashcode.

equals para comparar por id ao invés de por nome

hashcode para retornar o id do grupo

Criado 26 de abril de 2006
Ultima resposta 27 de abr. de 2006
Respostas 9
Participantes 4