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…
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.
O código que eu to usando é o gerado pelo NetBeans
public void inserirGrupo(GrupoVO grupo){
grupoBean = new Grupo();
grupoBean.setDsGrp(grupo.getDsGrupo());
EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("sicta");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try{
em.persist(grupoBean);
em.getTransaction().commit();
} catch(Exception e){
e.printStackTrance();
em.getTransaction().rollback();
}finally{
em.close();
}
}
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.
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.
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.
@Entity
@SequenceGenerator(name = "SEQ_CLOG", sequenceName = "seq_casa")
public class Casa {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_CLOG")
private int id;
[/code]
2º- Testa o codigo dessa forma:
[code]public void inserirGrupo(GrupoVO grupo){
try{
grupoBean = new Grupo();
grupoBean.setDsGrp(grupo.getDsGrupo());
EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("sicta");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(grupoBean);
em.flush();
em.getTransaction().commit();
em.clear();
} catch(Exception e){
e.printStackTrance();
em.getTransaction().rollback();
}finally{
em.close();
}
Caso não funcione por favor manda os Entity para dar uma olhada.
@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”)})
public class Grupo implements Serializable {
private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy= GenerationType.AUTO, generator = “conhecimento.grupo_cd_grp_seq”) @Column(name = “cd_grp”, nullable=true)
private Integer cdGrp; @Column(name = “ds_grp”)
private String dsGrp; @OneToMany(cascade = CascadeType.ALL, mappedBy = “cdGrp”)
private Collection subgrupoCollection;
public Grupo() {
}
public Grupo(Integer cdGrp) {
this.cdGrp = cdGrp;
}
public Integer getCdGrp() {
return cdGrp;
}
public void setCdGrp(Integer cdGrp) {
this.cdGrp = cdGrp;
}
public String getDsGrp() {
return dsGrp;
}
public void setDsGrp(String dsGrp) {
this.dsGrp = dsGrp;
}
public Collection getSubgrupoCollection() {
return subgrupoCollection;
}
public void setSubgrupoCollection(Collection subgrupoCollection) {
this.subgrupoCollection = subgrupoCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (cdGrp != null ? cdGrp.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 Grupo)) {
return false;
}
Grupo other = (Grupo) object;
if ((this.cdGrp == null && other.cdGrp != null) || (this.cdGrp != null && !this.cdGrp.equals(other.cdGrp))) {
return false;
}
return true;
}