HELP - Não SALVA OBJETO nem A PAU!

12 respostas
S

Galera bom dia!

É meu primeiro post aqui no forum desde já agradeço pela colaboração de todos!

Estou pesquisando como resolver esse problema a algum tempo e não consigo sair do lugar, acho que deve ser de relacionamento entre as entidades, so que esta muito dificil, se alguem tiver uma luz!!!

OBRIGADO.

Tenho a ENTIDADE PontoAtendimento
@Entity
public class PontoAtendimento implements Serializable {

@Id @GeneratedValue
private long id;
@Version
private long version;

@ManyToOne
private Grupo unidade;

@ManyToMany
private List<Fila> filasAtendidas = new ArrayList<Fila>();

@ManyToMany
private List<Fila> filasEncaminhadas = new ArrayList<Fila>();

getts e setters
}

Agora a ENTIDADE Fila

@Entity
public class Fila implements Serializable{

@Id @GeneratedValue
private long id;
@Version
private long version;

@ManyToMany(mappedBy="filasAtendidas")
private List<PontoAtendimento> pontoFilasAtendidas = new ArrayList<PontoAtendimento>();

@ManyToMany(mappedBy="filasEncaminhadas")
private List<PontoAtendimento> pontoFilasEncaminhadas = new ArrayList<PontoAtendimento>();

getts e setters
}
o seguinte erro é gerado na hora de salvar 11:06:37 >> [WARN] >> org.hibernate.util.JDBCExceptionReporter:100 - SQL Error: 1364, SQLState: HY000 11:06:37 >> [ERROR] >> org.hibernate.util.JDBCExceptionReporter:101 - Field 'pontoFilasEncaminhadas_id' doesn't have a default value 11:06:37 >> [ERROR] >> org.hibernate.event.def.AbstractFlushingEventListener:324 - Could not synchronize database state with session org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:12 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244) at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1180) at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:5 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:26 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:260) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:183) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) at br.ind.seat.websenha.negocio.NegocioPontoAtendimento.salvar(NegocioPontoAtendimento.java:63) at br.ind.seat.websenha.mb.ConfigPontoAtendimentoBean.confirmar(ConfigPontoAtendimentoBean.java:232) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.el.parser.AstValue.invoke(AstValue.java:191) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:6 at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:8 at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:774) at javax.faces.component.UICommand.broadcast(UICommand.java:372) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329) at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:38 at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.ind.seat.websenha.filtros.FiltroMenu.doFilter(FiltroMenu.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.ind.seat.websenha.filtros.FiltroAutenticacao.doFilter(FiltroAutenticacao.java:37) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:29 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:58 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619) Caused by: java.sql.BatchUpdateException: Field 'pontoFilasEncaminhadas_id' doesn't have a default value at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:201 at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1454) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:26 ... 59 more

12 Respostas

D

Por favor da próxima vez colocar tags no seu código da próxima vez.

Qual banco vc está utilizando??
Como você está fazendo para gerar a o valor da chave primária??

S

Opa Daniel beleza? Sou novo aqui no forum e não tava ligado nesse questão das tags… Mas pode deixar que da proxima eu tentarei colocar beleza?

O BD que eu utilizao é o MySQL

As chaves já estão sendo geradas na propria enidade utilizadno o @Id @GeneratedValue concorda?
PontoAtendimento

@Id @GeneratedValue private long id;

Qualquer dica vai ser bem vinda.

Valeu!!!

D

Concordo, mas o quero saber de você é se setou este campo na sua tabela como auto-incremento??

S

Sim, está como auto increment.

Isso já esta sendo feito no exemplo que mostrei aqui de inicio ok?

D

Na sua classe faltou a anotação que indica a qual tabela sua entidade está vinculada:

@Table(name="tb_suatabela")

Posta o sql da sua tabela por favor.

S

Opa Daniel, so lembrando que o script é gerado via java/hibernate
Enão eu tenho as entidades mapeadas no hibernate config e tenho uma classe que gera o banco atraves do mapeamento…

CREATE TABLE IF NOT EXISTS `pontoatendimento` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `version` bigint(20) NOT NULL, 
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;


CREATE TABLE IF NOT EXISTS `pontoatendimento_fila` (
  `pontoFilasEncaminhadas_id` bigint(20) NOT NULL,
  `filasEncaminhadas_id` bigint(20) NOT NULL,
  `pontoFilasAtendidas_id` bigint(20) NOT NULL,
  `filasAtendidas_id` bigint(20) NOT NULL,
  KEY `FK538447B185FF164` (`pontoFilasAtendidas_id`),
  KEY `FK538447B18ADD6C40` (`filasAtendidas_id`),
  KEY `FK538447B1CB2AC8E5` (`pontoFilasEncaminhadas_id`),
  KEY `FK538447B12C724FED` (`filasEncaminhadas_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `fila` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,   
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

agradeço pelo apoio !!!

D

Mas a anotação @Table tem que ter.

Testa com ela ai na sua entidade.

S

Daniel nda!

Até agora nessa zinca e lá vai indo mais um dia…

:cry:

D

Vc gerar a tabela pelo, hibernate após as tabelas geradas você configiura ele para não gerar tabela mais??

S

sim!!!

E agora?

valeu!!!

D

Posta seu arquivo de configuração do hibernate por favor.

S
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/projeto</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.username">projeto</property>
        <property name="hibernate.connection.password">0000</property>
        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.format_sql">false</property>
        
         <!-- Todos mapeamentos -->
         <mapping class="br..."/>
        
    </session-factory>
</hibernate-configuration>
Criado 29 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 12
Participantes 2