3
respostas

@ID

Olá tudo bom?

Gostaria de uma ajuda, pois estou com o seguinte cenário:

Tenho 3 tabelas que sao manytomany entre elas, onde foi gerado uma outra classe cujo o ID é a juncao dos 3 id das outras tabelas.

como mapeio isso via annotation na classe model, para que eu possa executar o select automático via DetachedCriteria.

3 respostas

Oi Anderson,

A anotação @Id permite definir qual propriedade é o identificador da sua entidade.

Já usando o @EmbeddedId é possível unir em uma classe as informações que compõem a chave composta sob uma mesma variável:

@Entity
 class Parametro {
      @EmbeddedId
      private ParametroId parametroId;
 }

 @Embeddable
 class ParametroId {
      private String nome;
      private Integer empresa;
 }

Ótimo, mas e quando essa chave composta é relacionada a outras três tabelas? sendo que as mesmas são ManyToOne?

Segue modelo do banco:

CREATE TABLE M_R (
    GRUP INTEGER NOT NULL,
    MOD CHAR(2) NOT NULL,
    ROT CHAR(4) NOT NULL,
    IN CHAR(1) NOT NULL,
    AL CHAR(1) NOT NULL,
    EX CHAR(1) NOT NULL,
    VI CHAR(1) NOT NULL,
    CONSTRAINT INTEG_32 PRIMARY KEY (GRUP,MOD,ROT),
    CONSTRAINT FK7TFOTEG5YOK0NF0A391JM2840 FOREIGN KEY (MOD) REFERENCES MOD(ID),
    CONSTRAINT FKL7YYM5YIOQCIO2HEE9H4IULKD FOREIGN KEY (ROT) REFERENCES ROT(ID);
CREATE INDEX FK7TFOTEG5YOK0NF0A391JM2840 ON M_R (MOD);
CREATE INDEX FKL7YYM5YIOQCIO2HEE9H4IULKD ON M_R (ROT);
CREATE UNIQUE INDEX RDB$PRIMARY2 ON M_R (GRUP,MOD,ROT) ;

Alguma luz?