JPA - relacionamento por campo diferente do id

Olá pessoal !

Preciso novamente de ajuda.

Vamos supor que eu tenha duas tabelas (objetos).

TabelaA
id
codigo
nome
etc

TabelaB

Como mapeio no objeto TabelaB pra se relacionar com a TabelaA pelo codigo dela e não pelo id ?

Se eu faço assim na TabelaA:
@ManyToOne
@JoinColumn(name = “codigo”)
private TabelaA tabelaA;

Ele apenas chama essa relação de codigo, mas ele usa o campo id da TabelaA e não o campo codigo.

Ficou difícil de entender o que você quer.

Esse post aqui explica os relacionamentos possíveis: JPA: Mini Livro - Primeiros passos e conceitos detalhados.

Desculpa, pensei q tinha ficado claro :frowning:

Tentarei melhorar.
Eu tenho duas tabelas: Gerente e Cliente

A tabela Gerente tem: id, codigo, nome, etc
A tabela Cliente tem: id, nome, etc

Eu quero fazer um relacionamento entre Cliente e Gerente.
Qro q tenha um campo na tabela Cliente q seja relacionado com o codigo da tabela Gerente e não com o id.

Se no Cliente eu fizer:

@ManyToOne
@JoinColumn(name = “codigo”)
private Gerente gerente;

Ele irá criar uma coluna na tabela Cliente, mas ela será ligada com o id da tabela Gerente e não qro isso.
Qro liga-la com o campo codigo da tabela Gerente.

Beleza, agora ficou claro.

Leia o post que ele explica. Veja a parte de Chaves que lá explica como fazer. [=

Eu li oq vc disse, paginas 8 e 9, já q não dá tempo de ler tudo antes de acabar aqui.
Muito bom o mini livro.

Mas só dá pra fazer utilizando outras classes com id ?
Pensei q fosse só um mapeamento entre as duas classes Gerente e Cliente

        @Embeddable
	public class UsuarioID implements Serializable {
		
		private static final long serialVersionUID = -8312712065749875183L;
		
		private Long id;
		private String codigo;
		
		public UsuarioID() {}
            
                //equals e hashcode
        }
@Entity
@Table(name = "usuario")
public class Usuario {
       @EmbeddedId
	private UsuarioID usuarioID;

        //etc
}

Por um problema de modelagem que não me permitiram mudar, eu tenho o seguinte:

Tabela Usuario: guarda gerentes e corretores
Tabela Cliente: guarda clientes

Um cliente tem 1 gerente e 1 corretor.
O problema é q a relação do cliente com corretor é feita pelo id do Usuario e a relação entre cliente e gerente é feita
pelo codigo do usuario.

Agora com chave composta, como mapeio cliente com corretor (Usuario.id) e cliente com gerente (Usuario.codigo) ?