[Resolvido] Problema com annotations

é o seguinte, to criando o projeto biblioteca, onde um autor pode possuir varios livros e um livro pode possuir varios autores. Minhas classes ja estão todas anotadas direitinhos, com cascata e tudo mais, inclusive inserindo na tabela intermediaria do banco. O problema é quando eu ja possuo um autor cadastrado no banco e eu quero simplesmente linkar esse autor a um novo livro,
em vez de simplesmente associar o id do autor ao isbn no livros, está sendo criado um novo autor no banco.

public class TesteCadastrarLivro{
    public static void main(String[] args) {
        DAOGenerico dg = new DAOGenerico();
        Autor a;// = new Autor();
        List<Autor> lista = new ArrayList();
        a=(Autor)dg.consultarPorChave(Autor.class, 5);
        Livro l = new Livro();
        l.setIsbn("12");
        l.setTitulo("A cabana");
        l.setEdicao(8);
        l.setCopyright("2010");
        lista.add(a);
        l.setAutores(lista);
        dg.cadastrar(l);

Abaixo segue o codigo das minhas classes.

@Entity
@Table(name = "livros")
public class Livro implements Serializable {
@Id
private String isbn;
@Column
private String titulo;
@Column
private int edicao;
@Column
private String copyright;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "autoresisbn", joinColumns = { 
@JoinColumn(name = "isbn") }, 
inverseJoinColumns = { @JoinColumn(name = "idautor") })        
List<Autor> autores = new ArrayList();
@Entity
@Table(name = "autores")
public class Autor implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idautor;
    @Column
    private String nome;
    @Column
    private String sobrenome;
    @ManyToMany(mappedBy="autores",cascade = CascadeType.ALL)
    List<Livro> livros = new ArrayList();

Seu alguem puder ajudar, ficarei muito agradecido.

poste fica + fácil.

:thumbup: