Olá galera, estou fazendo uma plicação usando hibernate com oracle porém na hora de inserir um registro no banco esta lançando uma exeção.
Fiz um insert na mão com os mesmos dados e os dados são inseridos normalmente, porém ao chamar via hibernate não vai.
java.sql.BatchUpdateException: ORA-01438: value larger than specified precision allowed for this column
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4210)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.abril.DAO.Teste.main(Teste.java:57)
12:27:14,407 WARN JDBCExceptionReporter:77 - SQL Error: 1438, SQLState: 22003
12:27:14,407 ERROR JDBCExceptionReporter:78 - ORA-01438: value larger than specified precision allowed for this column
12:27:14,407 WARN JDBCExceptionReporter:77 - SQL Error: 1438, SQLState: 22003
12:27:14,423 ERROR JDBCExceptionReporter:78 - ORA-01438: value larger than specified precision allowed for this column
12:27:14,423 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
org.hibernate.exception.DataException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.abril.DAO.Teste.main(Teste.java:57)
Caused by: java.sql.BatchUpdateException: ORA-01438: value larger than specified precision allowed for this column
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4210)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 8 more
Meu bean esta mapeado da seguinte maneira.
@Entity
@Table(name="RESPONSAVEL_AGENCIA")
@SequenceGenerator(name = "sq_responsavel_agencia", sequenceName = "sq_responsavel_agencia")
public class ResponsavelAgenciaVO implements Serializable {
private static final long serialVersionUID = 200612281630L;
public static final String SESSION_VALUE = "UsuarioResponsavelAgenciaSession";
private Integer codigo;
private String nome;
private String cargo;
private String telefone;
private String email;
private String senha;
private Date dataUltimoAcesso;
private Integer qtdAcessos;
private String dddTelefone;
private AgenciaPublicidadeVO agencia;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sq_responsavel_agencia")
@Column(name="cod_responsavel")
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
@Column(name="nom_responsavel")
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name="nom_cargo_responsavel")
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
@Column(name="num_telefone")
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
@Column(name="nom_email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name="nom_senha")
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
@Column(name="dat_ultimo_acesso")
public Date getDataUltimoAcesso() {
return dataUltimoAcesso;
}
public void setDataUltimoAcesso(Date dataUltimoAcesso) {
this.dataUltimoAcesso = dataUltimoAcesso;
}
@Column(name="qtd_acesso")
public Integer getQtdAcessos() {
return qtdAcessos;
}
public void setQtdAcessos(Integer qtdAcessos) {
this.qtdAcessos = qtdAcessos;
}
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumns({@JoinColumn(name="cod_edicao_premio"),@JoinColumn(name="cod_agencia")})
public AgenciaPublicidadeVO getAgencia() {
return agencia;
}
public void setAgencia(AgenciaPublicidadeVO agencia) {
this.agencia = agencia;
}
@Column(name="DDD_TELEFONE")
public String getDddTelefone() {
return dddTelefone;
}
public void setDddTelefone(String dddTelefone) {
this.dddTelefone = dddTelefone;
}
}
Alguém poderia me ajudar…
Obrigado