Pessoal, estou postando as classes que criei, elas não estão com os relacionamentos porque de tanto testar possibilidades sem sucesso acabei por não saber por onde começar, não sei se o problema é que estou pensando fora de OO, mas sempre vejo o resultado como errado, além de não ter conseguido gerá-los quando em uma tabela existem 2 chaves primárias e na outra apenas uma, como é o caso do relacionamento entre security_users e security_groupings. Sei que o post ficou grande mas achei que seria melhor se colocado desta forma.
Agradeço desde já pela ajuda.
Classe Usuario:
package com.model;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="usuario")
@NamedQueries({
@NamedQuery(name="Usuario.findAllUsuarios", query="select u from Usuario u"),
@NamedQuery(name="Usuario.findUsarioByLogin", query="select u from Usuario u where u.idLogin = :idLogin")
})
public class Usuario {
public static final String FIND_ALL_USERS = "Usuario.findAllUsuarios";
public static final String FIND_USER_BY_LOGIN = "Usuario.findUsuariorByLogin";
@Id
@Column(name="id_login", unique=true)
private String idLogin;
@Column(name="id_empre")
private int idEmpresa;
@Column(name="id_filia")
private int idFilial;
@Column(name="id_colab")
private int idColaborador;
@Column(name="id_clifo")
private int idCliente;
@Column(name="id_estab")
private int idEstabelecimento;
@Column(name="id_ctato")
private int idContato;
@Column(name="cd_senha")
private String cdSenha;
@Column(name="dt_cadas")
private Calendar dtCadastro;
@Column(name="vl_suppl_house")
private double vlSupplyHouse;
@Column(name="st_usuar_web")
private String stUsuarioWeb;
@Column(name="dt_alter_senha")
private Calendar dtAlteracaoSenha;
@Column(name="st_alter_senha")
private String stAlteracaoSenha;
@Column(name="st_logad")
private String stLogado;
@Column(name="qt_logins")
private int qtLogins;
@Column(name="st_visua_gesto")
private String stVisualizacaoGestor;
@Column(name="tp_visua_gesto_ext")
private String tpVisualizacaoGestorExterno;
@Column(name="qt_restr")
private int qtRestricoes;
// Getters and Setters
@Override
public int hashCode(){
return idLogin.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Usuario) {
Usuario usuario = (Usuario) obj;
return usuario.getIdLogin().equals(getIdLogin());
}
return false;
}
}
Classe Security_Users:
package com.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="security_users")
@NamedQueries({
@NamedQuery(name="Security_Users.findAllSecUsers", query="select s from Security_Users s"),
@NamedQuery(name="Security_Users.findUserByDescription", query="select s from Security_Users s where s.description = :description"),
@NamedQuery(name="Security_Users.findDescriptionByUser", query="select s from Security_Users s where s.name = :name")
})
public class Security_Users {
public static final String FIND_ALL_SEC_USERS = "Security_Users.findAllSecUsers";
public static final String FIND_USER_BY_DESCRIPTION = "Security_Users.findUserByDescription";
public static final String FIND_DESCRIPTION_BY_USER = "Security_Users.findDescriptionByUser";
@Id
@Column(unique=true)
private String name;
private String description;
private int priority;
@Column(name="user_type")
private int userType;
// Getters and Setters
public int hashCode(){
return name.hashCode();
}
public boolean equals(Object obj) {
if (obj instanceof Security_Users) {
Security_Users su = (Security_Users) obj;
return su.getName().equals(getName());
}
return false;
}
}
Classe Security_Groupings:
package com.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="security_groupings")
@NamedQueries({
@NamedQuery(name="Security_Groupings.findAllSecGroupings", query="select s from Security_Groupings s"),
@NamedQuery(name="Security_Groupings.findGroupByLogin", query="select s from Security_Groupings s where s.userName = :userName"),
@NamedQuery(name="Security_Groupings.findLoginByGroup", query="select s from Security_Groupings s where s.groupName = :groupName")
})
@IdClass(Security_GroupingsID.class)
public class Security_Groupings {
public static final String FIND_ALL_SEC_GROUPINGS = "Security_Groupings.findAllSecGroupings";
public static final String FIND_GROUP_BY_LOGIN = "Security_Groupings.findGroupByLogin";
public static final String FIND_LOGIN_BY_GROUP = "Security_Groupings.findLoginByGroup";
@Id
@Column(name="group_name")
private String groupName;
@Id
@Column(name="user_name")
private String userName;
// Getters and Setters
}
Classe Security_GroupingsId:
package com.model;
import java.io.Serializable;
public class Security_GroupingsID implements Serializable{
private static final long serialVersionUID = 343L;
private String groupName;
private String userName;
public Security_GroupingsID(){ }
public Security_GroupingsID(String groupName, String userName) {
this.groupName = groupName;
this.userName = userName;
}
public String getGroupName() {
return groupName;
}
public String getUserName() {
return userName;
}
@Override
public int hashCode(){
return groupName.hashCode() + userName.hashCode();
}
@Override
public boolean equals(Object obj){
if (obj instanceof Security_GroupingsID) {
Security_GroupingsID secGroupsID = (Security_GroupingsID) obj;
return secGroupsID.groupName.equals(this.groupName) && secGroupsID.userName.equals(this.userName);
}
return false;
}
}
Classe Colaborador:
package com.model;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="colaborador")
@NamedQueries({
@NamedQuery(name="Colaborador.findAllColaboradores", query="select c from Colaborador c"),
@NamedQuery(name="Colaborador.findColaboradorByEmpresa", query="select c from Colaborador c where c.idEmpresa = :idEmpresa"),
@NamedQuery(name="Colaborador.findColaboradorByEmpresaFilial", query="select c from Colaborador c where c.idEmpresa = :idEmpresa and c.idFilial = :idFilial"),
@NamedQuery(name="Colaborador.findColaboradorByEmpresaFilialColaborador", query="select c from Colaborador c where c.idEmpresa = :idEmpresa and c.idFilial = :idFilial and c.idColaborador = :idColaborador")
})
@IdClass(ColaboradorId.class)
public class Colaborador {
private static final String FIND_ALL_COLABORADORES = "Colaborador.findAllColaboradores";
private static final String FIND_COLABORADOR_BY_EMPRESA = "Colaborador.findColaboradorByEmpresa";
private static final String FIND_COLABORADOR_BY_EMPRESA_FILIAL = "Colaborador.findColaboradorByEmpresaFilial";
private static final String FIND_COLABORADOR_BY_EMPRESA_FILIAL_COLABORADOR = "Colaborador.findColaboradorByEmpresaFilialColaborador";
@Id
@Column(name="id_empre")
private int idEmpresa;
@Id
@Column(name="id_filia")
private int idFilial;
@Id
@Column(name="id_colab")
private int idColaborador;
@Column(name="id_nivel_organ")
private String idNivelOrganico;
@Column(name="id_cargo")
private int idCargo;
@Column(name="nm_colab")
private String nmColaborador;
@Column(name="st_vincu")
private String stVinculacao;
@Column(name="de_ender")
private String deEndereco;
@Column(name="de_bairr")
private String deBairro;
@Column(name="de_cidad")
private String deCidade;
@Column(name="id_regis_estad")
private String idRegisEstado;
@Column(name="nu_cep_colab")
private int nuCEPColaborador;
@Column(name="nu_ramal_1")
private int nuRamal1;
@Column(name="nu_ramal_2")
private int nuRamal2;
@Column(name="dt_admis")
private Calendar dtAdmissao;
@Column(name="dt_demis")
private Calendar dtDemissao;
@Column(name="vl_remun_contr")
private double vlRemuneracaoContratual;
@Column(name="id_regis_unida_contr")
private String idRegisUnidadeContratual;
@Column(name="nu_telef1")
private int nuTelefone1;
@Column(name="nu_telef2")
private int nuTelefone2;
@Column(name="de_mail_1")
private String deMail1;
@Column(name="de_mail_2")
private String deMail2;
@Column(name="nu_ddd")
private int nuDDD;
@Column(name="st_usuar_ad")
private String stUsuarioAD;
// Getters and Setters
}
}
Classe ColaboradorId:
package com.model;
import java.io.Serializable;
public class ColaboradorId implements Serializable{
private static final long serialVersionUID = 142L;
private int idEmpresa;
private int idFilial;
private int idColaborador;
public ColaboradorId() { }
public ColaboradorId(int idEmpresa, int idFilial, int idColaborador){
this.idEmpresa = idEmpresa;
this.idFilial = idFilial;
this.idColaborador = idColaborador;
}
public int getIdEmpresa() {
return idEmpresa;
}
public int getIdFilial() {
return idFilial;
}
public int getIdColaborador() {
return idColaborador;
}
public int hashCode(){
return idEmpresa + idFilial + idColaborador;
}
public boolean equals(Object obj){
if (obj instanceof ColaboradorId) {
ColaboradorId colaboradorID = (ColaboradorId) obj;
return colaboradorID.idEmpresa == this.idEmpresa && colaboradorID.idFilial == this.idFilial && colaboradorID.idColaborador == this.idColaborador;
}
return false;
}
}
Classe Contato_Cliente_Fornecedor:
package com.model;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="contato_cliente_fornecedor")
@NamedQueries({
@NamedQuery(name="Contato_Cliente_Fornecedor.findAllContatos", query="select c from Contato_Cliente_Fornecedor c"),
@NamedQuery(name="Contato_Cliente_Fornecedor.findContatoByCliente", query="select c from Contato_Cliente_Fornecedor c where c.idCliente = :idCliente"),
@NamedQuery(name="Contato_Cliente_Fornecedor.findContatoByClienteEstab", query="select c from Contato_Cliente_Fornecedor c where c.idCliente = :idCliente and c.idEstabelecimento = :idEstabelecimento"),
@NamedQuery(name="Contato_Cliente_Fornecedor.findContatoByClienteEstabContato", query="select c from Contato_Cliente_Fornecedor c where c.idCliente = :idCliente and c.idEstabelecimento = :idEstabelecimento and c.idContato = :idContato")
})
@IdClass(Contato_Cliente_FornecedorId.class)
public class Contato_Cliente_Fornecedor {
private static final String FIND_ALL_CONTATOS = "Contato_Cliente_Fornecedor.findAllContatos";
private static final String FIND_CONTATO_BY_CLIENTE = "Contato_Cliente_Fornecedor.findContatoByCliente";
private static final String FIND_CONTATO_BY_CLIENTE_ESTAB = "Contato_Cliente_Fornecedor.findContatoByClienteEstab";
private static final String FIND_CONTATO_BY_CLIENTE_ESTAB_CONTATO = "Contato_Cliente_Fornecedor.findContatoByClienteEstabContato";
@Id
@Column(name="id_clifo")
private int idCliente;
@Id
@Column(name="id_estab")
private int idEstabelecimento;
@Id
@Column(name="id_ctato")
private int idContato;
@Column(name="nm_ctato")
private String nmContato;
@Column(name="de_trata")
private String deTratamento;
@Column(name="dt_nasci")
private int dtNascimento;
@Column(name="st_emiss_corre")
private String stEmissaoCorrespondencia;
@Column(name="de_mail1")
private String deMail1;
@Column(name="de_mail2")
private String deMail2;
@Column(name="id_regis_cargo")
private String idRegisCargo;
@Column(name="id_regis_area_compe")
private String idRegisAreaCompetencia;
@Column(name="dt_desli")
private Calendar dtDesligamento;
@Column(name="vl_remun_contr")
private double vlRemuneracaoContratual;
@Column(name="id_regis_unida_contr")
private String idRegisUnidadeContratual;
// Getters and Setters
}
}
Classe Contato_Cliente_FornecedorId
package com.model;
import java.io.Serializable;
public class Contato_Cliente_FornecedorId implements Serializable{
private static final long serialVersionUID = 152L;
private int idCliente;
private int idEstabelecimento;
private int idContato;
public Contato_Cliente_FornecedorId() {
}
public Contato_Cliente_FornecedorId(int idCliente, int idEstabelecimento, int idContato) {
this.idCliente = idCliente;
this.idEstabelecimento = idEstabelecimento;
this.idContato = idContato;
}
public int getIdCliente() {
return idCliente;
}
public int getIdEstabelecimento() {
return idEstabelecimento;
}
public int getIdContato() {
return idContato;
}
public int hashCode(){
return idCliente + idEstabelecimento + idContato;
}
public boolean equals(Object obj) {
if (obj instanceof Contato_Cliente_FornecedorId) {
Contato_Cliente_FornecedorId contatoID = (Contato_Cliente_FornecedorId) obj;
return contatoID.idCliente == this.idCliente && contatoID.idEstabelecimento == this.idEstabelecimento && contatoID.idContato == this.idContato;
}
return false;
}
}
Grato pela ajuda.