Problemas com Hibernate

Bom dia a todos!
to com alguns problemas, espero que possam me ajudar!
criei meu Banco de Dados no Case Studio para o PostgreSQL, to Usando Hibernate + JPA, fiz a engenharia reversa do BD pra polpar trabalho (são 73 tabelas no Meu DER), depois da engenharia reversa acrescentei o @GenericGenerator(name=“generator”, strategy=“increment”, parameters = { }) e @GeneratedValue(strategy= GenerationType.AUTO, generator=“generator”), por que to usando o NetBeans e ele nao gera as sequencias automaticas.
vai alguns problemas que to tendo:

  1. Sempre que tento gravar uma imagem (Byte[]) no bd aparece o seguinte erro,sendo que em qualquer outra tabela não ocorre o problema:

antes estava armazenando somente o caminho, tava tudo ok:
vai o meu codigo para a conversao de IMG para Byte[]

//inFile é o caminho para a imagem
    public static byte[] imageToBytes(String inFile) {
        try {
            File file = new File(inFile);
            FileInputStream fis = new FileInputStream(file);
            byte[] bytes = new byte[(int) file.length()];
            fis.read(bytes);
            return bytes;
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Imagem.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Imagem.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
  1. no meu DER tem algumas tabelas ManyToMany, que foram convertidas pra uma tabela composta ManyToOne, so que quando tento salva nessa tabela, ela simplesmente nao salva: eis as Annotations:
    AutorPub

package Configurations.Hibernate.Mapeamento;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

@Entity
@GenericGenerator(name="generator", strategy="increment", parameters = { })
@Table(name = "autor_pub")
@NamedQueries({
    @NamedQuery(name = "AutorPub.findAll", query = "SELECT a FROM AutorPub a"),
    @NamedQuery(name = "AutorPub.findByCodAutopbl", query = "SELECT a FROM AutorPub a WHERE a.codAutopbl = :codAutopbl")})
public class AutorPub implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO, generator="generator")
    @Basic(optional = false)
    @Column(name = "cod_autopbl")
    private Integer codAutopbl;
    @JoinColumn(name = "cod_publicacao", referencedColumnName = "cod_publicacao")
    @ManyToOne(optional = false)
    private Publicacao publicacao;
    @JoinColumn(name = "cod_autor", referencedColumnName = "cod_autor")
    @ManyToOne(optional = false)
    private Autor autor;
    //Setters and Getters

}

Mapeamento Autor:

package Configurations.Hibernate.Mapeamento;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;


@Entity
@GenericGenerator(name="generator", strategy="increment", parameters = { })
@Table(name = "autor")
@NamedQueries({
    @NamedQuery(name = "Autor.findAll", query = "SELECT a FROM Autor a"),
    @NamedQuery(name = "Autor.findByCodAutor", query = "SELECT a FROM Autor a WHERE a.codAutor = :codAutor"),
    @NamedQuery(name = "Autor.findByNome", query = "SELECT a FROM Autor a WHERE a.nome = :nome"),
    @NamedQuery(name = "Autor.findBySobrenome", query = "SELECT a FROM Autor a WHERE a.sobrenome = :sobrenome"),
    @NamedQuery(name = "Autor.findByObservacao", query = "SELECT a FROM Autor a WHERE a.observacao = :observacao")})
public class Autor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO, generator="generator")
    @Basic(optional = false)
    @Column(name = "cod_autor")
    private Integer codAutor;
    @Column(name = "nome")
    private String nome;
    @Column(name = "sobrenome")
    private String sobrenome;
    @Column(name = "observacao")
    private String observacao;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "autor")
    private List<AutorPub> autorPubList;

    //Setters and Getters
}

Publicação:

package Configurations.Hibernate.Mapeamento;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@GenericGenerator(name="generator", strategy="increment", parameters = { })
@Table(name = "publicacao")
@NamedQueries({
    @NamedQuery(name = "Publicacao.findAll", query = "SELECT p FROM Publicacao p"),
    @NamedQuery(name = "Publicacao.findByCodPublicacao", query = "SELECT p FROM Publicacao p WHERE p.codPublicacao = :codPublicacao"),
    @NamedQuery(name = "Publicacao.findByTitulo", query = "SELECT p FROM Publicacao p WHERE p.titulo = :titulo"),
    @NamedQuery(name = "Publicacao.findByTopico", query = "SELECT p FROM Publicacao p WHERE p.topico = :topico"),
    @NamedQuery(name = "Publicacao.findByAno", query = "SELECT p FROM Publicacao p WHERE p.ano = :ano"),
    @NamedQuery(name = "Publicacao.findByEdicao", query = "SELECT p FROM Publicacao p WHERE p.edicao = :edicao"),
    @NamedQuery(name = "Publicacao.findByVolume", query = "SELECT p FROM Publicacao p WHERE p.volume = :volume"),
    @NamedQuery(name = "Publicacao.findByPaginas", query = "SELECT p FROM Publicacao p WHERE p.paginas = :paginas"),
    @NamedQuery(name = "Publicacao.findByCdd", query = "SELECT p FROM Publicacao p WHERE p.cdd = :cdd"),
    @NamedQuery(name = "Publicacao.findByAssunto", query = "SELECT p FROM Publicacao p WHERE p.assunto = :assunto"),
    @NamedQuery(name = "Publicacao.findByExemplar", query = "SELECT p FROM Publicacao p WHERE p.exemplar = :exemplar"),
    @NamedQuery(name = "Publicacao.findByPreco", query = "SELECT p FROM Publicacao p WHERE p.preco = :preco"),
    @NamedQuery(name = "Publicacao.findByDataPub", query = "SELECT p FROM Publicacao p WHERE p.dataPub = :dataPub"),
    @NamedQuery(name = "Publicacao.findByNroArea", query = "SELECT p FROM Publicacao p WHERE p.nroArea = :nroArea"),
    @NamedQuery(name = "Publicacao.findByCategoria", query = "SELECT p FROM Publicacao p WHERE p.categoria = :categoria")})
public class Publicacao implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO, generator="generator")
    @Basic(optional = false)
    @Column(name = "cod_publicacao")
    private Integer codPublicacao;
    @Column(name = "titulo")
    private String titulo;
    @Column(name = "topico")
    private Integer topico;
    @Column(name = "ano")
    private Integer ano;
    @Column(name = "edicao")
    private String edicao;
    @Column(name = "volume")
    private String volume;
    @Column(name = "paginas")
    private Integer paginas;
    @Column(name = "cdd")
    private String cdd;
    @Column(name = "assunto")
    private String assunto;
    @Column(name = "exemplar")
    private String exemplar;
    @Column(name = "preco")
    private Double preco;
    @Column(name = "data_pub")
    @Temporal(TemporalType.DATE)
    private Date dataPub;
    @Column(name = "nro_area")
    private String nroArea;
    @Column(name = "categoria")
    private String categoria;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "publicacao")
    private List<AutorPub> autorPubList;
    @JoinColumn(name = "cod_municipio", referencedColumnName = "cod_municipio")
    @ManyToOne(optional = false)
    private Municipio municipio;
    @JoinColumn(name = "cod_modoaquisicao", referencedColumnName = "cod_modoaquisicao")
    @ManyToOne(optional = false)
    private ModoAquisicao modoAquisicao;
    @JoinColumn(name = "cod_editora", referencedColumnName = "cod_editora")
    @ManyToOne(optional = false)
    private Editora editora;
    @JoinColumn(name = "cod_classificacao", referencedColumnName = "cod_classificacao")
    @ManyToOne(optional = false)
    private ClassificPub classificPub;
    @JoinColumn(name = "cod_areaespecifica", referencedColumnName = "cod_areaespecifica")
    @ManyToOne(optional = false)
    private AreaEspecifica areaEspecifica;
    @JoinColumn(name = "cod_area", referencedColumnName = "cod_area")
    @ManyToOne(optional = false)
    private Area area;
    
    //getters and Setters
}

Fiz de tudo quanto eh jeito, criei uma lista de AutorPub e depois inseri em Publicacao, gravei a Publicacao depois peguei a sua PK e Joguei em AutorPub e coloquei os autores disponiveis:
essa é a ultima coisa que tentei:

       Publicacao obj = new Publicacao();

        if (!textFieldCodigo.getText().isEmpty()) {
            obj.setCodPublicacao(Integer.parseInt(textFieldCodigo.getText()));
        }

        obj.setTitulo(textFieldTitulo.getText());
        obj.setAno(Integer.parseInt(textFieldAno.getText()));
        obj.setPaginas(Integer.parseInt(textFieldAno.getText()));
        obj.setDataPub(Util.Utilitarios.toSQLDate(this.textFieldData.getText()));
        //obj.setPreco(Double.parseDouble(textFieldPreco.getName().replace(",", ".")));
        obj.setVolume(textFieldVolume.getText());
        obj.setExemplar(textFieldExemplar.getText());
        obj.setEdicao(textFieldEdicao.getText());
        obj.setCdd(textFieldCDD.getText());
        obj.setCategoria(textFieldCategoria.getText());
        obj.setEditora((Editora) ConsultasCriteria.getRecord(Editora.class, comboNewEditora.getSelectedString(), "editora"));
        obj.setArea((Area) ConsultasCriteria.getRecord(Area.class, comboNewArea.getSelectedString(), "area"));
        obj.setAreaEspecifica((AreaEspecifica) ConsultasCriteria.getRecord(AreaEspecifica.class, comboNewAreaEspecifica.getSelectedString(), "areaEspecifica"));
        obj.setMunicipio((Municipio) ConsultasCriteria.getRecord(Municipio.class, comboNewLocal.getSelectedString(), "municipio"));
        obj.setClassificPub((ClassificPub) ConsultasCriteria.getRecord(ClassificPub.class, comboNewClassificacao.getSelectedString(), "classificacao"));
        obj.setModoAquisicao((ModoAquisicao) ConsultasCriteria.getRecord(ModoAquisicao.class, comboNewModoAquisicao.getSelectedString(), "modoAquisicao"));
        obj.setAssunto(this.textAreaAssunto.getText());
        
       GenericDAO daoSalvarPublicacao = new GenericDAO();
       daoSalvarPublicacao.setObject(obj);
       daoSalvarPublicacao.salvaOuAtualiza();

       List <AutorPub> autorPublicacoes = new ArrayList();
       Publicacao pub = (Publicacao) HibernateUtil
                                 .getSession()
                                 .getNamedQuery("Publicacao.findByTitulo")
                                 .setString("titulo" ,textFieldTitulo.getText()).toList().get(0);

       for (Autor aut : autoresAtuais) {
           AutorPub autorPublicacao = new AutorPub();
           autorPublicacao.setAutor(aut);
           autorPublicacao.setPublicacao(pub);
           autorPublicacoes.add(autorPublicacao);

           GenericDAO gDAO = new GenericDAO();
           gDAO.setObject(autorPublicacao);
           gDAO.salvaOuAtualiza();
      }
}

E simplesmente não salva…
alguem pode dar uma ajudinha!
Obrigado desde já!

Não salva = não salva
ou
Não salva = joga uma exceção que não faço idéia o que significa

O que tem no seu persistence.xml?

nao salva mesmo e nem gera excessao:
nao to usando persistense.xml, to usando hibernate.properties e AnnotationsConfigurations
Hibernate.properties:

# To change this template, choose Tools | Templates
# and open the template in the editor.

hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost/BD
hibernate.connection.username = postgres
hibernate.connection.password = senha
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql = true
hibernate.format_sql = true


# hbm2ddl  SchemaExport

Pra construir

    static {
        try {
            sessionFactory = getConfiguration().buildSessionFactory();
            openSession();
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null, "Erro: " + erro);
            sessionFactory = null;
        }
    }


    private static AnnotationConfiguration getConfiguration() {
        return new AnnotationConfiguration()
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Academico.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Agencia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.AgenciaPK.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Aldeia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Area.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.AreaEspecifica.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Artesanato.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Assunto.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Aula.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Autor.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.AutorPub.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Banco.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.CategoriaArt.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ClasGeraldoc.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ClassificDoc.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ClassificMidia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ClassificPub.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ComposicaoEmprestimo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ComposicaoTelefoneUsuario.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Conservacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Curriculum.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.DataFoto.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Disciplina.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Distribuidora.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Documento.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Editora.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Emprestimo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Endereco.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Escola.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Estado.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Etapa.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Etnia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.FitaVideo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Formacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.FormacaoAcad.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Fotografia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Fotografo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Frequencia.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.FuncaoArt.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.FuncaoServ.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Idioma.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Instituicao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ItemsAcervo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.LocalFoto.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Localescola.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Log.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Login.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Material.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.MatriculaDisc.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Ministra.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ModoAquisicao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ModoGravacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Municipio.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Naturalidade.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Orgaoexpeditor.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Professor.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Profissao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.ProfissaoAcad.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Publicacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Regional.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Servidor.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.SetorAtuacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Sexo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Situacao.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Status.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Tamanho.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.TelefoneAcademico.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.TelefoneCurriculum.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.TelefoneProfessor.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.TelefoneRegional.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Terraindigena.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Tipo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.TipoEmprestimo.class)
                .addAnnotatedClass(Configurations.Hibernate.Mapeamento.Usuario.class);
    }

    private static void openSession() {
        session = sessionFactory.openSession();
    }

Consegui resolver o problema do relacionamento!
era erro meu de atenção mesmo!
quando eu preenchia a lista dava NullPointerException e caia no Catch que nao tinha nada,
ai ficou da seguinte maneira:

    private List listAutoresAtuais() {
        List<Autor> listaDeAutores = new ArrayList();
        TableModel model = tabelaManterAutores.getModelTabelaFinal();

        for (int i = 0; i < model.getRowCount(); i++) {
            Autor aut = (Autor) HibernateUtil.getSession().get(Autor.class, Integer.parseInt(model.getValueAt(i,0).toString()));
            listaDeAutores.add(aut);
        }
        return listaDeAutores;
    }

o Erro do Batch Update continua!
se alguem souber como resolver