já verificou se está funcionando a sua conexão com o banco, tipo… o driver está instanciado corretamente no seu projeto? … pelo que dá pra ver aí… ele não está conseguindo salvar seus dados no banco…
shoko
Caused by: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
.
.
.
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into grupo (ds_grp, cd_grp) values (Teste, 2) foi abortada.
erro na sua query SQL kra!
verifica ela certinho ou cola o código e isso dai nao é um update e sim um insert no caso vc teria que colocar uma query de update.
L
leopoldof
ou pode ser também que vc tenha fechado a sessão antes de dar o comit()… poste o método que vc usa para salvar os dados na base pra verificarmos
allan_ablaze
O código que eu to usando é o gerado pelo NetBeans
O drive do postgres esta na minha biblioteca…
E o NetBeans ta conectado com o banco.
Vou tentar fazer uma insercao via JDBC puro pra ve se o drive ta funcionando certo msmo.
valeu galera… se alguem mais tiver alguma sugestao pra resolver esse problema pode mandar equanto eu testo com SQL.
P
prbpedro
Cara já sofri com este erro,
não sei se te ajuda, mas eu uso o BD postgresql e está excessão era lançada quando eu tentava inserir um registro em uma tabela e alguma constraint era violada (tipo unique em algum campo),
para resolver o problema atualizei o driver do postgresql e utilizando o método getMessage() da excessão pude verificar qual era a constraint violada.
allan_ablaze
opa… valeu… vou atualizar o drive…
estou usando o drive que ja veio no netbeans…
se der certo posto eu posto ai…
valeu prbpedro
edvaldo.santiago
Bom dia galera....
Eu tive esses problemas, por favor de uma olhada nos seguintes itens:
1º- Como vc está usando annotations por favor verifique se está gerando o Id certo.
ps. O postgres é necessario obter o sequence.
Caso não funcione por favor manda os Entity para dar uma olhada.
Valeu. :) :D
allan_ablaze
Fazendo
o erro mudou:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Could not excute JDBC batch update
.
.
.
Caused by: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
.
.
.
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into grupo (ds_grp, cd_grp) values (Teste, 2) foi abortada.
.
.
.
Apontando para em.flush() .
allan_ablaze
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageSICTa.SICTaPersistencia.tcc.ia.sicta.bean;importjava.io.Serializable;importjava.util.Collection;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.NamedQueries;importjavax.persistence.NamedQuery;importjavax.persistence.OneToMany;importjavax.persistence.SequenceGenerator;importjavax.persistence.Table;/** * * @author Allan */@Entity@Table(name="grupo")@SequenceGenerator(name="conhecimento.grupo_cd_grp_seq",sequenceName="conhecimento.grupo_cd_grp_seq")@NamedQueries({@NamedQuery(name="Grupo.findByCdGrp",query="SELECT g FROM Grupo g WHERE g.cdGrp = :cdGrp"),@NamedQuery(name="Grupo.findByDsGrp",query="SELECT g FROM Grupo g WHERE g.dsGrp = :dsGrp")})publicclassGrupoimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.AUTO,generator="conhecimento.grupo_cd_grp_seq")@Column(name="cd_grp",nullable=true)privateIntegercdGrp;@Column(name="ds_grp")privateStringdsGrp;@OneToMany(cascade=CascadeType.ALL,mappedBy="cdGrp")privateCollection<Subgrupo>subgrupoCollection;publicGrupo(){}publicGrupo(IntegercdGrp){this.cdGrp=cdGrp;}publicIntegergetCdGrp(){returncdGrp;}publicvoidsetCdGrp(IntegercdGrp){this.cdGrp=cdGrp;}publicStringgetDsGrp(){returndsGrp;}publicvoidsetDsGrp(StringdsGrp){this.dsGrp=dsGrp;}publicCollection<Subgrupo>getSubgrupoCollection(){returnsubgrupoCollection;}publicvoidsetSubgrupoCollection(Collection<Subgrupo>subgrupoCollection){this.subgrupoCollection=subgrupoCollection;}@OverridepublicinthashCode(){inthash=0;hash+=(cdGrp!=null?cdGrp.hashCode():0);returnhash;}@Overridepublicbooleanequals(Objectobject){// TODO: Warning - this method won't work in the case the id fields are not setif(!(objectinstanceofGrupo)){returnfalse;}Grupoother=(Grupo)object;if((this.cdGrp==null&&other.cdGrp!=null)||(this.cdGrp!=null&&!this.cdGrp.equals(other.cdGrp))){returnfalse;}returntrue;}@OverridepublicStringtoString(){return"SICTa.SICTaPersistencia.tcc.ia.sicta.bean.Grupo[cdGrp="+cdGrp+"]";}}
allan_ablaze
esse erro nao pode ser pq as tabelas estao no schema conhecimento eu nao no public padrao???
allan_ablaze
AHEEE… problema resolvido…
era isso mesmo… eu coloque o nome da entindade na annotation como “conhecimento.grupo”… FUNCIONOU…