@Embeddable
public class ClienteEmailPK implements Serializable{
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="cli_email_cli_id", insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Cliente cliente;
@OneToMany(mappedBy="cliente", fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
private EmailCliente emailCliente;;
}
@Entity
@Table(name="cli_email", schema="Tecnicos")
public class EmailCliente implements Serializable {
@EmbeddedId
@Resolvable(colName="ID")
private ClienteEmailPK id;
@Column(name="cli_email_email", nullable=false)
@Resolvable(colName="EMAIL")
private String email;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="cli_email_cli_id", insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
@Resolvable(colName="CLIENTE")
private Cliente cliente;
@Entity
@Table(name="Cliente", schema="Tecnicos")
@SequenceGenerator(name="SEQ_CLI", sequenceName="SEQ_CLIENTE", allocationSize=1, initialValue=1)
public class Cliente implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_CLI")
@Column(name="cli_id", nullable=false)
@Resolvable(colName="ID")
private Integer id;
@Column(name="cli_codext")
@Resolvable(colName="CÓDIGO")
private Integer codigoExterno;
@Column(name="cli_fili")
@Resolvable(colName="FILIAL")
private Integer filial;
@Column(name="cli_razaosocial", length=80)
@Resolvable(colName="RAZÃO SOCIAL")
private String razaoSocial;
@Column(name="cli_nomefantasia", length=80)
@Resolvable(colName="NOME FANTASIA")
private String nomeFantasia;
@Column(name="cli_cnpj", length=20)
private String cnpj;
@Column(name="cli_inscest", length=30)
private String InscEst;
@Column(name="cli_endereco", length=200)
private String endereco;
@Column(name="cli_bairro", length=45)
private String bairro;
@Column(name="cli_cidade", length=50)
private String cidade;
@Column(name="cli_estado", length=2)
private String estado;
@Column(name="cli_cep", length=20)
private String cep;
@Column(name="cli_telefone", length=20)
@Resolvable(colName="TELEFONE")
private String telefone;
@Column(name="cli_situreg", length=20)
private String situ_reg;
@Column(name="cli_emailPrincipal", length=150)
@Resolvable(colName="EMAIL")
private String emailPrincipal;
@OneToMany(mappedBy="cliente", fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection<EmailCliente> email;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="tecnico_cliente", schema="Tecnicos",
joinColumns=@JoinColumn(name="teccli_cli_id"),
inverseJoinColumns=@JoinColumn(name="teccli_tec_id"))
private Collection<Tecnicos> tecnicos;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="questionario_cliente", schema="Tecnicos",
joinColumns=@JoinColumn(name="cli_id"),
inverseJoinColumns=@JoinColumn(name="ques_id"))
private Collection<Questionario> questionarios;
gostaria de saber se da maneira que eu fiz está correto pois no banco minha chave primaria do emailCliente é idEmail + idCliente