Cabeção não entendi como o Hibernte funciona

Olá amigos, como o titulo já diz a pessoa que vos fala não entende como fazer certas coisas com o Hibernate.

Uma situação aparentemente simples:

Tenho a tabela A (PAI) e tenho a tabela B (FILHOS).

Simples né, mas posso ter registros na tabela A e não ter registros na tabela B.

Minhas perguntas:

Como devo criar minhas entidades?

Inserir claro é tranquilo. mas como altero se eu tenho 1 registro no PAI 3 no filho e em tempo de execução eu deleto 1 registro e incluo 2 novos???

Tenho certeza que é simples, mas to apanhando aqui amigos he he he :slight_smile:

Abraços

Jomello

OBS: Isso direto via persistencia é claro, do outro jeito é baba de quiado :smiley:

coloca o codigo das suas entidades ai, fica mais facil de entender e te explicar…

t+

Então faltou falar que estou usando generic, portanto para dar update estou usando isso:

public void edit(T entidade) throws EaoException {
        EntityManager sessao = JPAUtil.getSession();
        try {
            sessao.getTransaction().begin();
            sessao.merge(entidade);
            sessao.flush();
            sessao.clear();
            sessao.getTransaction().commit();
        } catch (Exception e) {
            sessao.getTransaction().rollback();
            e.printStackTrace();
            throw new EaoException(e.getMessage());
        } finally {
            if (sessao != null) {
                sessao.close();
            }
        }
    }

Ai tenho uma entidade produrador + clientes

Como sou da velha guarda, fiz a estruturação no banco e depois fiz a engenharia reversa ou seja:

tabela procurador: id,etc
tabela cliente: id, etc
tabela de conexão: id_procurador + id_cliente

Ai quando faço a engenharia reversa no Hibernate, ele claro não cria a entidade de conexão e coloca o tal:

No Procurador
@ManyToMany(mappedBy = “procuradorList”)
private List clienteList;

No Cliente
@JoinTable(name = “procurador_acionista”, joinColumns = {
@JoinColumn(name = “id_cliente”, referencedColumnName = “id_cliente”)}, inverseJoinColumns = {
@JoinColumn(name = “id_procurador”, referencedColumnName = “id_procurador”)})
@ManyToMany
private List procuradorList;

Teoricamente esta tudo certo, mas vai vc fazer o que falei para ver o resultado, ou seja tem 1 procurador e 3 clientes, deleta 1 e inclui 2.

Diretamentamente via generic não rola, nem a pau juvenal he he he :slight_smile:

Será que eu soube me explicar corretamente ( desculpe se não :slight_smile: )?

Abraços

Jomello

cara,

nao sei se vc ta fazendo assim, preencha o objeto procurador com a lista de cliente e em cada cliente coloque seu objeto procurador.

acho q deve ser isso.