Vamos fazer o seguinte. Vou postar aqui os meus mapeamentos. Veja se te ajuda:
SISTEMA
@Entity
@Table(name = "assistema")
@NamedQueries({
@NamedQuery(name="asSistema.searchAll", query="select e from asSistema e "),
@NamedQuery(name="asSistema.searchFgAtivo", query="select e from asSistema e where e.fgAtivo = :fgAtivo"),
@NamedQuery(name="asSistema.searchById", query="select e from asSistema e where e.idSistema = :idSistema")
})
public class asSistema implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_sistema", nullable = false)
private String idSistema;
@Column(name = "nome", nullable = false)
private String nome;
@Column(name = "fg_ativo", nullable = false)
private String fgAtivo;
@OneToMany(mappedBy = "sistema")
private List<asOperacao> operacaoList;
@OneToMany( mappedBy="sistema" )
private List<asSistemaModulo> sistemaModuloList;
// gets e sets
MODULO
@Entity
@Table(name = "asmodulo")
@NamedQueries({
@NamedQuery(name="asModulo.searchAll", query="select e from asModulo e "),
@NamedQuery(name="asModulo.searchFgAtivo", query="select e from asModulo e where e.fgAtivo = :fgAtivo"),
@NamedQuery(name="asModulo.searchById", query="select e from asModulo e where e.idModulo = :idModulo")
})
public class asModulo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_modulo", nullable = false)
private int idModulo;
@Column(name = "descricao", nullable = false)
private String descricao;
@Column(name = "fg_ativo", nullable = false)
private String fgAtivo;
@OneToMany( mappedBy="modulo" )
private List<asSistemaModulo> sistemaModuloList;
// GET e SET
E AGORA ( SISTEMA_MODULO ) SÓ PARA A CHAVE PRIMARIA
@Embeddable
public class asSistemaModuloPK implements Serializable {
@Column(name = "sistema", nullable = false)
private String sistema;
@Column(name = "modulo", nullable = false)
private int modulo;
public asSistemaModuloPK() {
}
ASSISTEMA_MODULO entity
@Entity
@Table(name = "assistema_modulo")
@NamedQueries
({
@NamedQuery(name = "asSistemaModulo.searchAll", query = "select e from asSistemaModulo e"),
@NamedQuery(name = "asSistemaModulo.searchFgAtivo", query = "select e from asSistemaModulo e where e.fgAtivo = :fgAtivo"),
@NamedQuery(name = "asSistemaModulo.searchById", query = "select e from asSistemaModulo e where e.sistema = :sistema and e.modulo = :modulo")
})
public class asSistemaModulo implements Serializable{
@EmbeddedId
private asSistemaModuloPK asSistemaModuloPK;
@ManyToOne
@JoinColumn(name="sistema", referencedColumnName="id_sistema",insertable=false,updatable=false)
private asSistema sistema;
@ManyToOne
@JoinColumn(name="modulo" , referencedColumnName="id_modulo",insertable=false,updatable=false)
private asModulo modulo;