[Resolvido] Erro Hibernate ao tentar persistir: Field 'xxx' doesn't a default value

Já vasculhei diversos posts aqui e em outros sites, mas não consegui resolver, alguem poderia me ajudar?

Galera essa é minha classe:



@Entity
@Table(name="chamado") 
public class Chamado implements Serializable {
	
	@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="id_chamado")
	private Long idChamado;
        
@ManyToOne(fetch = FetchType.LAZY) 
	@JoinColumn(name = "id_chamado_pai", insertable = true, updatable = true, nullable = true) 
	private Chamado chamadoPai;
	

Ao tentar salvar esse objeto, estou recebendo o seguinte erro:

Caused by: java.sql.SQLException: Field 'idChamado' doesn't have a default value

Se alguem ja viu essa zica, por favor fique a vontade para ajudar :smiley:

você selecionou a opção no banco de dados de auto incremento?

Posta todo seu código ai…

[quote=adi_silva]você selecionou a opção no banco de dados de auto incremento?

Posta todo seu código ai…
[/quote]Pensei a mesma coisa.

Se a tabela foi criada na mão, e não pelo hibernate, você precisa alterar a tabela e colocar o campo id como autoincremento (para mysql e para sql server).

No caso de postgres e oracle você precisa utilizar sequence.

Esse post mostra como configurar uma sequence: JPA: Mini Livro - Primeiros passos e conceitos detalhados.

Helbert Coelho, link show. estou começando a andar com hibernate. Vou dar uma lida em seu blog. vlw

Fala galera,

obrigado pela atenção. Então, eu havia criado a tabela ‘manuelmente’ sim, mas tinha colocado o auto incremento, porém eu não havia criado o índice de único para a coluna. Feito a criação de índice único o Hibernate conseguiu popular.

Que fique registrado para quem se deparar com erro semelhante :stuck_out_tongue:

[quote=JackOld]Fala galera,

obrigado pela atenção. Então, eu havia criado a tabela ‘manuelmente’ sim, mas tinha colocado o auto incremento, porém eu não havia criado o índice de único para a coluna. Feito a criação de índice único o Hibernate conseguiu popular.

Que fique registrado para quem se deparar com erro semelhante :stuck_out_tongue: [/quote]uia, não sabia que isso influenciava. :shock:

Eu trabalho com MySQL e sempre que crio uma tabela nova eu já saio marcando por padrão, não sabia que daria logo esse tipo de problema. O.o

Pois é eu tmbm não, só que eu só marcava o índice de primary key…rs na verdade eu esbarrei nessa opção de unique e salvei aí funfou…rsrs

é meio tarde, porém, pode ajudar alguém …

eu estava tomando o mesmo erro, e quando fui ver era pq eu tinha esquecido de colocar a anotation em cima da super classe (JOINED, PERCLASS, “o outro eu esqueci”)

mas fica ai a dica. coisas que o cansaço faz com a pessoa.

pessoal, estava com o mesmo problema, e fiz o seguinte:

Na classe de persistencia:

@JoinColumn(name="situacao_mesa", nullable=false, insertable=false, updatable=false)  

para:

@JoinColumn(name="situacao_mesa", nullable=false, insertable=true, updatable=true)  

e no mapeamento .xml:

<many-to-one name="dlvSituacaoMesa" class="br.com.jvmsoftware.deliveryjava.mapeamento.DlvSituacaoMesa" update="false" insert="false" fetch="select">  

para:

<many-to-one name="dlvSituacaoMesa" class="br.com.jvmsoftware.deliveryjava.mapeamento.DlvSituacaoMesa" update="true" insert="true" fetch="select">  

Espero ter ajudado