Problemas com auto increment no hibernate

1 resposta
D

Ola turma. possuo o banco de dados mysql 5.0
estou tentando salvar um registro no banco com auto increment, porem salva tudo certo, mas preciso ter o ID que ele gerou no registro na tabela…

abaixo a minha classe entidade.
[/code]
/*

  • Requisicao1.java
  • Created on 15 de Maio de 2007, 13:57
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package banco;

import java.io.Serializable;

import java.util.Collection;

import java.util.Date;

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.SequenceGenerator;

import javax.persistence.Table;

import javax.persistence.Temporal;

import javax.persistence.TemporalType;

/**

  • Classe de entidade Requisicao1
  • @author leandro
    */
    @Entity
    @Table(name = “requisicao1”)
@NamedQueries( {

@NamedQuery(name = Requisicao1.findByIdRequisicao1, query = SELECT r FROM Requisicao1 r WHERE r.idRequisicao1 = :idRequisicao1),

@NamedQuery(name = Requisicao1.findByIdRequisicao1Mun, query = SELECT r FROM Requisicao1 r WHERE r.idRequisicao1Mun = :idRequisicao1Mun),

@NamedQuery(name = Requisicao1.findByIdMunicipio, query = SELECT r FROM Requisicao1 r WHERE r.idMunicipio = :idMunicipio),

@NamedQuery(name = Requisicao1.findByExercicio, query = SELECT r FROM Requisicao1 r WHERE r.exercicio = :exercicio),

@NamedQuery(name = Requisicao1.findByData, query = SELECT r FROM Requisicao1 r WHERE r.data = :data),

@NamedQuery(name = Requisicao1.findByPrazoEntrega, query = SELECT r FROM Requisicao1 r WHERE r.prazoEntrega = :prazoEntrega),

@NamedQuery(name = Requisicao1.findBySolicitante, query = SELECT r FROM Requisicao1 r WHERE r.solicitante = :solicitante),

@NamedQuery(name = Requisicao1.findByMotivo, query = SELECT r FROM Requisicao1 r WHERE r.motivo = :motivo)

})

public class Requisicao1 implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_requisicao1", nullable = false)
private Integer idRequisicao1;

@Column(name = "id_requisicao1_mun", nullable = false)
private Integer idRequisicao1Mun;

@Column(name = "id_municipio", nullable = false)
private String idMunicipio;

@Column(name = "exercicio", nullable = false)
private int exercicio;

@Column(name = "data")
@Temporal(TemporalType.DATE)
private Date data;

@Column(name = "prazo_entrega")
private Integer prazoEntrega;

@Column(name = "solicitante")
private String solicitante;

@Column(name = "motivo")
private String motivo;

@JoinColumn(name = "id_desdobramento", referencedColumnName = "id_desdobramento")
@ManyToOne
private Desdobramento idDesdobramento;

@JoinColumn(name = "id_programatica", referencedColumnName = "id_programatica")
@ManyToOne
private Programatica idProgramatica;

@JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario")
@ManyToOne
private Usuario idUsuario;

@JoinColumn(name = "id_sit_req", referencedColumnName = "id_sit_req")
@ManyToOne
private SitReq idSitReq;

@OneToMany(mappedBy = "idRequisicao1")
private Collection<Requisicao2> requisicao2Collection;

/** Creates a new instance of Requisicao1 */
public Requisicao1() {
}

/**
 * Cria uma nova instância de Requisicao1 com os valores especificados.
 * @param idRequisicao1 o idRequisicao1 do Requisicao1
 */
public Requisicao1(Integer idRequisicao1) {
    this.idRequisicao1 = idRequisicao1;
}

/**
 * Cria uma nova instância de Requisicao1 com os valores especificados.
 * @param idRequisicao1 o idRequisicao1 do Requisicao1
 * @param idRequisicao1Mun o idRequisicao1Mun do Requisicao1
 * @param idMunicipio o idMunicipio do Requisicao1
 * @param exercicio o exercicio do Requisicao1
 */
public Requisicao1(Integer idRequisicao1, int idRequisicao1Mun, String idMunicipio, int exercicio) {
    this.idRequisicao1 = idRequisicao1;
    this.idRequisicao1Mun = idRequisicao1Mun;
    this.idMunicipio = idMunicipio;
    this.exercicio = exercicio;
}

/**
 * Define o idRequisicao1 deste Requisicao1.
 * @return o idRequisicao1
 */
public Integer getIdRequisicao1() {
    return this.idRequisicao1;
}

/**
 * Define o idRequisicao1 deste Requisicao1 para o valor especificado.
 * @param idRequisicao1 o novo idRequisicao1
 */
public void setIdRequisicao1(Integer idRequisicao1) {
    this.idRequisicao1 = idRequisicao1;
}

/**
 * Define o idRequisicao1Mun deste Requisicao1.
 * @return o idRequisicao1Mun
 */
public Integer getIdRequisicao1Mun() {
    return this.idRequisicao1Mun;
}

/**
 * Define o idRequisicao1Mun deste Requisicao1 para o valor especificado.
 * @param idRequisicao1Mun o novo idRequisicao1Mun
 */
public void setIdRequisicao1Mun(Integer idRequisicao1Mun) {
    this.idRequisicao1Mun = idRequisicao1Mun;
}

/**
 * Define o idMunicipio deste Requisicao1.
 * @return o idMunicipio
 */
public String getIdMunicipio() {
    return this.idMunicipio;
}

/**
 * Define o idMunicipio deste Requisicao1 para o valor especificado.
 * @param idMunicipio o novo idMunicipio
 */
public void setIdMunicipio(String idMunicipio) {
    this.idMunicipio = idMunicipio;
}

/**
 * Define o exercicio deste Requisicao1.
 * @return o exercicio
 */
public int getExercicio() {
    return this.exercicio;
}

/**
 * Define o exercicio deste Requisicao1 para o valor especificado.
 * @param exercicio o novo exercicio
 */
public void setExercicio(int exercicio) {
    this.exercicio = exercicio;
}

/**
 * Define o data deste Requisicao1.
 * @return o data
 */
public Date getData() {
    return this.data;
}

/**
 * Define o data deste Requisicao1 para o valor especificado.
 * @param data o novo data
 */
public void setData(Date data) {
    this.data = data;
}

/**
 * Define o prazoEntrega deste Requisicao1.
 * @return o prazoEntrega
 */
public Integer getPrazoEntrega() {
    return this.prazoEntrega;
}

/**
 * Define o prazoEntrega deste Requisicao1 para o valor especificado.
 * @param prazoEntrega o novo prazoEntrega
 */
public void setPrazoEntrega(Integer prazoEntrega) {
    this.prazoEntrega = prazoEntrega;
}

/**
 * Define o solicitante deste Requisicao1.
 * @return o solicitante
 */
public String getSolicitante() {
    return this.solicitante;
}

/**
 * Define o solicitante deste Requisicao1 para o valor especificado.
 * @param solicitante o novo solicitante
 */
public void setSolicitante(String solicitante) {
    this.solicitante = solicitante;
}

/**
 * Define o motivo deste Requisicao1.
 * @return o motivo
 */
public String getMotivo() {
    return this.motivo;
}

/**
 * Define o motivo deste Requisicao1 para o valor especificado.
 * @param motivo o novo motivo
 */
public void setMotivo(String motivo) {
    this.motivo = motivo;
}

/**
 * Define o idDesdobramento deste Requisicao1.
 * @return o idDesdobramento
 */
public Desdobramento getIdDesdobramento() {
    return this.idDesdobramento;
}

/**
 * Define o idDesdobramento deste Requisicao1 para o valor especificado.
 * @param idDesdobramento o novo idDesdobramento
 */
public void setIdDesdobramento(Desdobramento idDesdobramento) {
    this.idDesdobramento = idDesdobramento;
}

/**
 * Define o idProgramatica deste Requisicao1.
 * @return o idProgramatica
 */
public Programatica getIdProgramatica() {
    return this.idProgramatica;
}

/**
 * Define o idProgramatica deste Requisicao1 para o valor especificado.
 * @param idProgramatica o novo idProgramatica
 */
public void setIdProgramatica(Programatica idProgramatica) {
    this.idProgramatica = idProgramatica;
}

/**
 * Define o idUsuario deste Requisicao1.
 * @return o idUsuario
 */
public Usuario getIdUsuario() {
    return this.idUsuario;
}

/**
 * Define o idUsuario deste Requisicao1 para o valor especificado.
 * @param idUsuario o novo idUsuario
 */
public void setIdUsuario(Usuario idUsuario) {
    this.idUsuario = idUsuario;
}

/**
 * Define o idSitReq deste Requisicao1.
 * @return o idSitReq
 */
public SitReq getIdSitReq() {
    return this.idSitReq;
}

/**
 * Define o idSitReq deste Requisicao1 para o valor especificado.
 * @param idSitReq o novo idSitReq
 */
public void setIdSitReq(SitReq idSitReq) {
    this.idSitReq = idSitReq;
}

/**
 * Define o requisicao2Collection deste Requisicao1.
 * @return o requisicao2Collection
 */
public Collection<Requisicao2> getRequisicao2Collection() {
    return this.requisicao2Collection;
}

/**
 * Define o requisicao2Collection deste Requisicao1 para o valor especificado.
 * @param requisicao2Collection o novo requisicao2Collection
 */
public void setRequisicao2Collection(Collection<Requisicao2> requisicao2Collection) {
    this.requisicao2Collection = requisicao2Collection;
}

/**
 * Retorna um valor de código hash para o objeto.  Esta implementação computa
 * um valor de código hash baseado nos campos id deste objeto.
 * @return um valor de código hash para este objeto.
 */
@Override
public int hashCode() {
    int hash = 0;
    hash += (this.idRequisicao1 != null ? this.idRequisicao1.hashCode() : 0);
    return hash;
}

/**
 * Determina se outro objeto é igual a este Requisicao1.  O resultado é
 * <code>true</code> se e somente se o argumento não for nulo e for um objeto Requisicao1 o qual
 * tem o mesmo valor para o campo id como este objeto.
 * @param object o objeto de referência com o qual comparar
 * @return <code>true</code> se este objeto é o mesmo como o argumento;
 * <code>false</code> caso contrário.
 */
@Override
public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Requisicao1)) {
        return false;
    }
    Requisicao1 other = (Requisicao1)object;
    if (this.idRequisicao1 != other.idRequisicao1 && (this.idRequisicao1 == null || !this.idRequisicao1.equals(other.idRequisicao1))) return false;
    return true;
}

/**
 * Retorna uma representação literal deste objeto.  Esta implementação cria
 * uma representação baseada nos campos id.
 * @return uma representação literal deste objeto.
 */
@Override
public String toString() {
    return "banco.Requisicao1[idRequisicao1=" + idRequisicao1 + "]";
}

}


para salvar…

HibernateUtility.getSession().merge((Requisicao1) req);

… salvar tudo perfeito…
mas se eu pedir pra exibir depois que salvar o idRequisicao1 ele diz que eh nulo.

tipo

HibernateUtility.getSession().merge((Requisicao1) req);

System.out.println(req.getIdRequisicao1);

alguem sabe o q estou fazendo errado

1 Resposta

D

Turma… se eu utilizar HibernateUtility.getSession().save((Requisicao1) req);
da certo… ai me traz o id…

Criado 16 de maio de 2007
Ultima resposta 17 de mai. de 2007
Respostas 1
Participantes 1