Boa Noite pessoal,
Estou tendo o seguinte problema em meu código:
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.model.Medicamentos.nome
Código que dispara a exception, entityManager.persist(m);
Medicamentos m = new Medicamentos();
entityManager.persist(m);
list.add(m);
@Entity
@Table(name = "MEDICAMENTOS", catalog = "", schema = "")
@NamedQueries({@NamedQuery(name = "Medicamentos.findAll", query = "SELECT m FROM Medicamentos m"), @NamedQuery(name = "Medicamentos.findByIdmedicamento", query = "SELECT m FROM Medicamentos m WHERE m.idmedicamento = :idmedicamento"), @NamedQuery(name = "Medicamentos.findByNome", query = "SELECT m FROM Medicamentos m WHERE m.nome = :nome")})
public class Medicamentos implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "IDMEDICAMENTO" )
@GeneratedValue(generator="IDMEDICAMENTO")
@SequenceGenerator( name = "IDMEDICAMENTO", sequenceName = "MEDICAMENTOS_IDMEDICAMENTO_GEN", allocationSize = 20 )
@Basic(optional = false)
@Column(name = "IDMEDICAMENTO")
private Integer idmedicamento;
@Basic(optional = false)
@Column(name = "NOME")
private String nome;
public Medicamentos() {
}
// segue gets e sets
estou utilizando o FireBird, minha lista está vinculada a GUI com Bean Bindings, do mais nada de diferente, mas quando tento criar um novo objeto dá esse erro,
setei nome como possivel de nulo no Bean e dessa forma ele passa por esse ponto… mas quando executo
entityManager.getTransaction().commit();
acontece:
SEVERE: GDS Exception. 335544347. validation error for column NOME, value "*** null ***"
22/12/2008 22:00:09 org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not insert: [com.model.Medicamentos]
debugando, verifiquei que o objeto criado recebe normalmente os valores e o atributo nome nesse momento não está nulo…
tive alguns problemas com o campo auto numerico, relacionado com GenerateValue e etc… mas agora ele está recebendo o valor do sequence correto…
poderia ser relacionado com isso? alguma diferença entre objetos ao comitar?
alguem poderia me dar uma força, valeu!