Ola pessoal, estou com problemas no mapeamento ManyToMany, alguem poderia dar uma ajuda, explicar o que esta acontecendo e onde eu estou errando.
antes de mais nada muito obrigado.
Tenho uma classe chamada Lanche.
[code]@Entity
@Table(name = “TB_LANCHE”)
@SequenceGenerator(name = “codigo”, sequenceName = “SEQ_CODIGO_LANCHE”, allocationSize = 1)
public class Lanche {
@Id
@Column(name = "COD_LANCHE")
@GeneratedValue(generator = "codigo", strategy = GenerationType.SEQUENCE)
private int codigo;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns(value = {
@JoinColumn(name = "COD_LANCHE", referencedColumnName = "COD_LANCHE"),
@JoinColumn(name = "COD_INGREDIENTE", referencedColumnName = "COD_INGREDIENTE") })
private RLLancheIngrediente lancheIngrediente;[/code]
e outra classe chamada ingredientes.
[code]@Entity
@Table(name = “TB_INGREDIENTE”)
@SequenceGenerator(name = “codigo”, sequenceName = “SEQ_CODIGO_INGREDIENTE”, allocationSize = 1)
public class Ingrediente {
@Id
@Column(name = "COD_INGREDIENTE")
@GeneratedValue(generator = "codigo", strategy = GenerationType.SEQUENCE)
private int codigo;
@Column(name = "NOME")
private String nome;
@Column(name = "QUANTIDADE")
private int quantidade;
@Column(name = "UNIDADE")
private String unidade;
@Column(name = "VALOR")
private double valor;
@Column(name = "USUARIO")
private String usuario;
@Column(name = "ST_REGISTRO")
private String stRegistro = StatusRegistro.ATIVO.getCodigo();[/code]
e tenho uma classe de relacionamento chamada RLLancheIngrediente
[code]@Entity
@Table(name = “RL_LANCHE_INGREDIENTE”)
public class RLLancheIngrediente implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2064899212168214L;
@EmbeddedId
private RLLancheIngredientePk pk;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COD_LANCHE", insertable = false, updatable = false)
private Lanche lanche;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COD_INGREDIENTE", insertable = false, updatable = false)
private Ingrediente ingrediente;
@Column(name = "UNIDADE")
private String unidade;
@Column(name = "QUANTIDADE")
private int quantidade;
@Column(name = "ST_REGISTRO")
private String stRegistro = StatusRegistro.ATIVO.getCodigo();
[/code]
essa classe tem uma classe RLLancheIngredientePk
@Embeddable
public class RLLancheIngredientePk implements Serializable {
private static final long serialVersionUID = -519198639542384944L;
@Column(name = "COD_LANCHE")
private int codLanche;
@Column(name = "COD_INGREDIENTE")
private int codIngrediente;
as tabelas do banco
CREATE TABLE TB_INGREDIENTE (
COD_INGREDIENTE NUMBER PRIMARY KEY,
NOME VARCHAR2(50) NOT NULL,
QUANTIDADE NUMBER,
UNIDADE VARCHAR2(2) NOT NULL,
ST_REGISTRO VARCHAR2(1) NOT NULL,
USUARIO VARCHAR2(50),
VALOR NUMBER(10,2)
)
CREATE TABLE TB_LANCHE (
COD_LANCHE NUMBER PRIMARY KEY,
NOME VARCHAR2(50) NOT NULL,
PRECO NUMBER(10,2),
ST_REGISTRO VARCHAR2(1) NOT NULL
)
CREATE TABLE RL_LANCHE_INGREDIENTE(
COD_LANCHE NUMBER,
COD_INGREDIENTE NUMBER,
QUANTIDADE NUMBER,
UNIDADE VARCHAR(2),
ST_REGISTRO VARCHAR(1),
PRIMARY KEY(COD_LANCHE, COD_INGREDIENTE),
FOREIGN KEY (COD_LANCHE) REFERENCES TB_LANCHE,
FOREIGN KEY (COD_INGREDIENTE) REFERENCES TB_INGREDIENTE
)