Boa tarde galera to com um problema meio inusitado.
Estou tentando gravar um objeto que tem um relacionamento, detalhe no banco ele tambem nao esta como not null
@JoinColumn(name = "COD_MUN", referencedColumnName = "id", nullable = true)
@ManyToOne(optional = false)
ao tentar inserir um objeto no banco de dados esta dando o seguinte erro
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: br.com.atlantica.atlanticaSped.orm.entity.Registro0100.municipioIBGE
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1179)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1112)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1118)
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:635)
at br.com.atlantica.atlanticaSped.orm.daoimpl.DAOImpl.merge(DAOImpl.java:37)
at br.com.atlantica.atlanticaSped.orm.daoimpl.DAOImpl.save(DAOImpl.java:65)
at br.com.atlantica.atlanticaSped.orm.daoimpl.Registro0100DAOImpl.save(Registro0100DAOImpl.java:23)
at br.com.atlantica.atlanticaSped.service.Registro0100Service.salvar(Registro0100Service.java:60)
at br.com.atlantica.atlanticaSped.service.Registro0100Service.salvar(Registro0100Service.java:1)
at br.com.atlantica.atlanticaSped.util.ViewUtilities.salvarPadrao(ViewUtilities.java:77)
at br.com.atlantica.atlanticaSped.bean.BeanPadrao.salvar(BeanPadrao.java:45)
at br.com.atlantica.swinggoodies.components.template.SGBotoesCadastro$3.actionPerformed(SGBotoesCadastro.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: br.com.atlantica.atlanticaSped.orm.entity.Registro0100.municipioIBGE
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:101)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.ejb.event.EJB3MergeEventListener.saveWithGeneratedId(EJB3MergeEventListener.java:62)
at org.hibernate.event.def.DefaultMergeEventListener.mergeTransientEntity(DefaultMergeEventListener.java:313)
at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:282)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:237)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:859)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:843)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:847)
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:626)
... 34 more
org.hibernate.AssertionFailure: null id in br.com.atlantica.atlanticaSped.orm.entity.Registro0100 entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1175)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1251)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236)
at br.com.atlantica.atlanticaSped.orm.daoimpl.Registro0100DAOImpl.findByIDRegistro0001(Registro0100DAOImpl.java:17)
at br.com.atlantica.atlanticaSped.service.Registro0100Service.findByIDRegistro0001(Registro0100Service.java:34)
at br.com.atlantica.atlanticaSped.bean.Registro0100Bean.atualizaLista(Registro0100Bean.java:194)
at br.com.atlantica.atlanticaSped.util.ViewUtilities.atualizaObjetoSecao(ViewUtilities.java:61)
at br.com.atlantica.atlanticaSped.util.ViewUtilities.salvarPadrao(ViewUtilities.java:78)
at br.com.atlantica.atlanticaSped.bean.BeanPadrao.salvar(BeanPadrao.java:45)
at br.com.atlantica.swinggoodies.components.template.SGBotoesCadastro$3.actionPerformed(SGBotoesCadastro.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
ERROR [AWT-EventQueue-0] (AssertionFailure.java:45) - an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: null id in br.com.atlantica.atlanticaSped.orm.entity.Registro0100 entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1175)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1251)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236)
at br.com.atlantica.atlanticaSped.orm.daoimpl.Registro0100DAOImpl.findByIDRegistro0001(Registro0100DAOImpl.java:17)
at br.com.atlantica.atlanticaSped.service.Registro0100Service.findByIDRegistro0001(Registro0100Service.java:34)
at br.com.atlantica.atlanticaSped.bean.Registro0100Bean.atualizaLista(Registro0100Bean.java:194)
at br.com.atlantica.atlanticaSped.util.ViewUtilities.atualizaObjetoSecao(ViewUtilities.java:61)
at br.com.atlantica.atlanticaSped.util.ViewUtilities.salvarPadrao(ViewUtilities.java:78)
at br.com.atlantica.atlanticaSped.bean.BeanPadrao.salvar(BeanPadrao.java:45)
at br.com.atlantica.swinggoodies.components.template.SGBotoesCadastro$3.actionPerformed(SGBotoesCadastro.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Segue meu pojo abaixo
package br.com.atlantica.atlanticaSped.orm.entity;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
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.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "Registro0100", catalog = "validadorSped", schema = "", uniqueConstraints = {
@UniqueConstraint(columnNames = {"id", "COD_MUN"}), @UniqueConstraint(columnNames = {"idRegistro0001"})})
@NamedQueries( {
@NamedQuery(name = "Registro0100.findAll", query = "SELECT r FROM Registro0100 r"),
@NamedQuery(name = "Registro0100.findById", query = "SELECT r FROM Registro0100 r WHERE r.id = :id"),
@NamedQuery(name = "Registro0100.findByIDRegistro0001", query = "SELECT r FROM Registro0100 r WHERE r.registro0001.id = :id"),
@NamedQuery(name = "Registro0100.findByReg", query = "SELECT r FROM Registro0100 r WHERE r.reg = :reg"),
@NamedQuery(name = "Registro0100.findByNome", query = "SELECT r FROM Registro0100 r WHERE r.nome = :nome"),
@NamedQuery(name = "Registro0100.findByCpf", query = "SELECT r FROM Registro0100 r WHERE r.cpf = :cpf"),
@NamedQuery(name = "Registro0100.findByCrc", query = "SELECT r FROM Registro0100 r WHERE r.crc = :crc"),
@NamedQuery(name = "Registro0100.findByCnpj", query = "SELECT r FROM Registro0100 r WHERE r.cnpj = :cnpj"),
@NamedQuery(name = "Registro0100.findByCep", query = "SELECT r FROM Registro0100 r WHERE r.cep = :cep"),
@NamedQuery(name = "Registro0100.findByEnd1", query = "SELECT r FROM Registro0100 r WHERE r.end1 = :end1"),
@NamedQuery(name = "Registro0100.findByNum", query = "SELECT r FROM Registro0100 r WHERE r.num = :num"),
@NamedQuery(name = "Registro0100.findByCompl", query = "SELECT r FROM Registro0100 r WHERE r.compl = :compl"),
@NamedQuery(name = "Registro0100.findByBairro", query = "SELECT r FROM Registro0100 r WHERE r.bairro = :bairro"),
@NamedQuery(name = "Registro0100.findByFone", query = "SELECT r FROM Registro0100 r WHERE r.fone = :fone"),
@NamedQuery(name = "Registro0100.findByFax", query = "SELECT r FROM Registro0100 r WHERE r.fax = :fax"),
@NamedQuery(name = "Registro0100.findByEmail", query = "SELECT r FROM Registro0100 r WHERE r.email = :email")})
public class Registro0100 implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id", nullable = false)
private Integer id;
@Column(name = "REG", length = 4)
private String reg = "0100";
@Column(name = "NOME", length = 100)
private String nome;
@Column(name = "CPF", length = 11)
private String cpf;
@Column(name = "CRC", length = 15)
private String crc;
@Column(name = "CNPJ", length = 14)
private String cnpj;
@Column(name = "CEP", length = 8)
private String cep;
@Column(name = "END1", length = 60)
private String end1;
@Column(name = "NUM", length = 10)
private String num;
@Column(name = "COMPL", length = 60)
private String compl;
@Column(name = "BAIRRO", length = 60)
private String bairro;
@Column(name = "FONE", length = 10)
private String fone;
@Column(name = "FAX", length = 10)
private String fax;
@Column(name = "EMAIL", length = 255)
private String email;
@JoinColumn(name = "idRegistro0001", referencedColumnName = "id", nullable = false)
@OneToOne(optional = false, fetch = FetchType.LAZY)
private Registro0001 registro0001;
@JoinColumn(name = "COD_MUN", referencedColumnName = "id", nullable = true)
@ManyToOne(optional = false)
private MunicipioIBGE municipioIBGE;
public Registro0100()
{
}
public Registro0100(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getReg()
{
return reg;
}
public void setReg(String reg)
{
this.reg = reg;
}
public String getNome()
{
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getCpf()
{
return cpf;
}
public void setCpf(String cpf)
{
this.cpf = cpf;
}
public String getCrc()
{
return crc;
}
public void setCrc(String crc)
{
this.crc = crc;
}
public String getCnpj()
{
return cnpj;
}
public void setCnpj(String cnpj)
{
this.cnpj = cnpj;
}
public String getCep()
{
return cep;
}
public void setCep(String cep)
{
this.cep = cep;
}
public String getEnd1()
{
return end1;
}
public void setEnd1(String end1)
{
this.end1 = end1;
}
public String getNum()
{
return num;
}
public void setNum(String num)
{
this.num = num;
}
public String getCompl()
{
return compl;
}
public void setCompl(String compl)
{
this.compl = compl;
}
public String getBairro()
{
return bairro;
}
public void setBairro(String bairro)
{
this.bairro = bairro;
}
public String getFone()
{
return fone;
}
public void setFone(String fone)
{
this.fone = fone;
}
public String getFax()
{
return fax;
}
public void setFax(String fax)
{
this.fax = fax;
}
public String getEmail()
{
return email;
}
public void setEmail(String email)
{
this.email = email;
}
public Registro0001 getRegistro0001()
{
return registro0001;
}
public void setRegistro0001(Registro0001 registro0001)
{
this.registro0001 = registro0001;
}
public MunicipioIBGE getMunicipioIBGE()
{
return municipioIBGE;
}
public void setMunicipioIBGE(MunicipioIBGE municipioIBGE)
{
this.municipioIBGE = municipioIBGE;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@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 Registro0100))
{
return false;
}
Registro0100 other = (Registro0100) object;
if((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "br.com.atlantica.atlanticaSped.orm.entity.Registro0100[id=" + id + "]";
}
}
Se alguem souber o que pode ser isso eu agradeço