Duplicate entry '1-1' for key 'PRIMARY' como contornar esse erro?

Esse erro, na qual diz que to duplicando a chave primária tá ocorrendo na seguinte situação:

FILME_GENERO foi uma tabela criada pelo JPA quando defini ManyToMany em duas entidades. FILME e GENERO.
Na hora de cadastrar um filme com seus respectivos generos. o log mostra esse erro:

Error Code: 1062
Call: INSERT INTO FILME_GENERO (generos_ID, filmes_ID) VALUES (?, ?)
bind => [2 parameters bound]
Query: DataModifyQuery(name=“generos” sql=“INSERT INTO FILME_GENERO (generos_ID, filmes_ID) VALUES (?, ?)”)

O que pude entender é que generos_id e filmes_id da tabela filme_genero são chaves primárias, aí o que tá complicando é que generos_ID = 1 e filmes_ID = 1. daí o 1-1.

Como contorno esse problema de duas chaves primárias na mesma tabela? Lembrando que essa tabela é criada sozinha, tem que mexer em filme ou em genero, mas não sei o que modificar.

[code]@Entity
public class Genero implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToMany(mappedBy = "generos", cascade= CascadeType.ALL)
private List<Filme> filmes;

}

@Entity
public class Filme implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToMany(cascade = CascadeType.ALL)
private List<Genero> generos;

}[/code]

Me apeguei ao fato de Filme ter vários generos, genero tá em vários filmes =P Essas duas entidades geram FILME_GENERO com duas chaves primárias… enfim se alguém souber arrumar esse relacionamento zuado que fiz…

Dae… achei uma solução (ainda não testei) que acho que vai funcionar. Eu preciso desalinhar as primary keys. por exemplo:

pk1 = 1
pk2 = 100

aí ambas vão aumentando sem crise hehe. Vou tentar aqui

Eu tiraria o Cascade de Gênero. Tu quer mesmo que, ao apagar um gênero, todos os filmes dele sejam apagados?

[quote=unkillable]Esse erro, na qual diz que to duplicando a chave primária tá ocorrendo na seguinte situação:

FILME_GENERO foi uma tabela criada pelo JPA quando defini ManyToMany em duas entidades. FILME e GENERO.
Na hora de cadastrar um filme com seus respectivos generos. o log mostra esse erro:

Error Code: 1062
Call: INSERT INTO FILME_GENERO (generos_ID, filmes_ID) VALUES (?, ?)
bind => [2 parameters bound]
Query: DataModifyQuery(name=“generos” sql=“INSERT INTO FILME_GENERO (generos_ID, filmes_ID) VALUES (?, ?)”)

O que pude entender é que generos_id e filmes_id da tabela filme_genero são chaves primárias, aí o que tá complicando é que generos_ID = 1 e filmes_ID = 1. daí o 1-1.

Como contorno esse problema de duas chaves primárias na mesma tabela? Lembrando que essa tabela é criada sozinha, tem que mexer em filme ou em genero, mas não sei o que modificar.

[code]@Entity
public class Genero implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToMany(mappedBy = "generos", cascade= CascadeType.ALL)
private List<Filme> filmes;

}

@Entity
public class Filme implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToMany(cascade = CascadeType.ALL)
private List<Genero> generos;

}[/code]

Me apeguei ao fato de Filme ter vários generos, genero tá em vários filmes =P Essas duas entidades geram FILME_GENERO com duas chaves primárias… enfim se alguém souber arrumar esse relacionamento zuado que fiz…

[/quote]

Cara na verdade você precisa de uma tabela associativa entre as tabelas, que vai conter a PK de gênero e de filme algo mais ou menos assim:

@ManyToMany(fcascade = CascadeType.ALL) @JoinTable(name="GENERO_FILME", joinColumns=@JoinColumn(name="PK_FILME(ou o nome da FK de sua table)"), inverseJoinColumns=@JoinColumn(name="PK_GENERO")) private List<Genero> generos;

creio que assim, você já vai conseguir fazer.

Qualquer coisa estamos aí. :lol: