Chave composta Hibernate

galera seguinte eu tenho uma entidade
Contato ela é chave composta Porém uma dessas colunas que compões essa chave é auto increment, como faço pra pra mapear isso com hibernate ??

Entidade

ContatoID 
 *Integer id
 *Integer usuarioid

Mapeamento

<hibernate-mapping package="br.inf.bios.entidade">
	<class name="Contato" >
		<composite-id name="id" class="ContaoID" >
			<key-property name=""></key-property>
			<key-property name=""></key-property>
		</composite-id>
	
	</class>
  
</hibernate-mapping>

é por esse caminho ??

vlewww

Tente colocar isto em baixo do nome do campo:

isso não funciona…

vc está dizendo isso:


<composite-id name="id" class="ContaoID" >
 			<key-property name=""> <generator class="increment" /> </key-property>
 			<key-property name=""></key-property>
 		</composite-id>

help ai galera >…

é galera acho que não tem como eu fazer isso, mais vlew a força ai… 8)

pois não tem como eu ter uma chave auto incremet no banco onde eu já tenho uma chave numerica…heheheh vlewwwww

Olá!
Para compor uma (unique constraint), não utilize chave composta, isso é uma arquitetura ruim.
Utilize uma chave (id), e defina uma unique constraint, com os campos que você não deseja permitir duplicação. Exemplo:

Tabela Users

id (PK)
nome
login (Unique Constraint)

Assim seu banco vai funcionar com mais eficiência, e você não vai precisar fazer queries com muitos campos chaves em joins. Reduzir o número de campos em tabelas de menor papel no sistema. ect.

ola tenta migras estes xmls seus para anotations é muito mais facil e pratico eu até te ajudaria se fosse anotation

Ah, um dos principais beneficios é que você poderá acessar uma tabela central em seu sistema sem percorrer a arvore inteira… exemplo: para acessar algumas requisições de um determinado setor, você poder utilizar a chave estrangeira do setor, sem utilizar em conjunto a da empresa. (a chave do setor poderia repertir caso fosse composta com a chave da empresa). Infinidade de vantagens de acesso no seu código.

se for autoinc para mysql ja vou adiantando pq eu tive alguns problemas para um autoincremet no hibernate precisa de stategy que tem que ser identity

acho q nesse link deve ter algo q te ajuda

http://tech.sxinfo.net/UserFiles/mxk/File/eBook/java/hibernate/Manning%20-%20Hibernate%20in%20Action.pdf

<class name="User" table="USER"> <composite-id> <key-property name="username" column="USERNAME"/> <key-property name="organizationId" column="ORGANIZATION_ID"/> </composite-id> <version name="version" column="VERSION" unsaved-value="0"/> ... </class>

The code to save a new User would look like this: User user = new User(); // Assign a primary key value user.setUsername("john"); user.setOrganizationId(42); // Set property values user.setFirstname("John"); user.setLastname("Doe"); session.saveOrUpdate(user); // will save, since version is 0 session.flush();