Hibernate Annotation - Declaracao de Chave Composta

Existe alguma forma de se declarar uma chave composta sem precisar usar uma segunda classe?? A minha entidade hoje esta assim:

Responsavel

@Entity @IdClass(ResponsavelPk.class) public class Responsavel implements Serializable {

ResponsavelPk

@Embeddable public class ResponsavelPk implements Serializable {

Nao existe uma forma que eu soh precise declarar assim?

[code]@Entity
@IdClass(ResponsavelPk.class)
public class Responsavel implements Serializable {

@Id
public Long getUsuaCdUsuario () {

@Id
public Long getContCdConteudo () {[/code]

Acho que o codigo e a estrutura das classes fica bem mais limpa!

Olá Pessoal aproveitando o topico de chave composta, tenho a seguinte situação, tenho um objeto relacionado com um perfil e uma restrição e essa é minha chave composta. Mas para um cadastro de objeto, perfil posso ter varias restrições, (uma lista de restrições). Mas não estou conseguindo carregar os dados nessa lista.

Alguem pode me ajudar???

@Entity
@Table(name=“objeto_perfil”)
@IdClass(ObjetoPerfilPK.class)
public class ObjetoPerfil implements Serializable {
@Id
@RemoteProperty
private Objeto objeto;
@Id
@RemoteProperty
private Perfil perfil;
@Id
@RemoteProperty
private List restricao;

@RemoteProperty
private String observacao;

private static final long serialVersionUID = 1L;

@Embeddable
public class ObjetoPerfilPK implements Serializable {
@ManyToOne(targetEntity=Perfil.class, fetch = FetchType.EAGER)
@JoinColumn(name=“perfil_id”)
private Perfil perfil;

@ManyToOne(targetEntity=Objeto.class,fetch = FetchType.EAGER)
@JoinColumn(name="objeto_id")
private Objeto objeto;      

@ManyToOne(targetEntity=Restricao.class,fetch = FetchType.EAGER)
@JoinColumn(name="restricao_id")
private List<Restricao> restricao;

Essa associacao nao seria ManyToMany?
Se for ManyToOne, a declaracao do seu campo deveria ser assim:

@ManyToOne(targetEntity=Restricao.class,fetch = FetchType.EAGER) @JoinColumn(name="restricao_id") private Restricao restricao;

Falae galerinha…

Tô desenterrando esse tópico pq to precisando de algo parecido…

Preciso mapear uma classe de associação da seguinte forma:

Tenho uma classe/tabela Usuario e outra Mapa, o relacionamento(keys) entre elas é persistido no bd em uma tabela criada pelo hibernate: Usuario_Mapa, onde tem somente as colunas usuario_id e mapa_id. Precisei criar uma classe Usuario_Mapa para criar os DAO’s e assim gerar um xml e depois recuperar os dados desse XML e persistir no bd, como uma forma de backup e alteração de bd…

Um usuário pode estar relacionado a vários mapas, da mesma forma q um mapa pode estar relacionado para vários usuários… many to many!!!

Essa class ficou +/- assim:

[code]import javax.persistence.Entity;
import javax.persistence.Id;

@SuppressWarnings(“serial”)
@Entity
public class Usuario_Mapa extends CiaEntity {

private long usuario_id;
@Id
private long mapas_id;

gets e sets…[/code]

Porém dessa forma eu não consigo pegar todos usuarios e todos mapas por causa das chaves duplicadas… só consigo setar mapas diferentes para usuarios diferentes…

Tem alguma forma de fazer isso?

Abraço…

Legal ficar apagando minhas mensagens…

Tem mais alguma coisa ae pra fazer naum?

pq não tenta ajudar ao invés de atrapalhar!!!

Você precisa mesmo dessa classe? Pra fazer o mapeamento, não é necessário criá-la:

classe Usuario:

@ManyToMany( targetEntity=Mapa.class, cascade={CascadeType.PERSIST, CascadeType.MERGE},fetch=FetchType.LAZY) @JoinTable( name="usuario_mapa", joinColumns={@JoinColumn(name="coluna_mapa")}, inverseJoinColumns={@JoinColumn(name="coluna_usuario")} )

E faz o contrário na classe Mapa.

Blz cara…

Eu criei um tópico novo e expliquei melhor minha app e o problema…

http://www.guj.com.br/posts/list/82701.java

Dá uma olhada nisso…

Abraço… valeu a força…