Boa tarde pessoal.
Estou com uma dúvida em como fazer um mepeamento OneToOne.
Eu tenho uma classe chamada Escola que tem um atributo chamado municipio do tipo Municipio.
Quero fazer esse mapeamento.
@Entity
@Table(name = "municipios", catalog = "sge", schema = "public")
public class Municipio extends Objeto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@Basic(optional = false)
@Column(name = "descricao")
private String descricao;
@Basic(optional = false)
@Column(name = "uf")
private String uf;
@Basic(optional = false)
@Column(name = "ibge")
private String ibge;
@Column(name = "status")
private String status;
public Municipio() {
}
@Entity
@Table(name = "escolas", catalog = "sge", schema = "public")
@BatchSize(size=0)
public class Escola extends Objeto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@Basic(optional = false)
@Column(name = "razao_social")
private String razaoSocial;
@Basic(optional = false)
@Column(name = "nome_fantasia")
private String nomeFantasia;
@Basic(optional = false)
@Column(name = "cnpj")
private String cnpj;
@Column(name = "numero_inep")
private String numeroInep;
@Column(name = "numero_cnas")
private String numeroCnas;
@Column(name = "numeroCebas")
private String numeroCebas;
@Column(name = "dependencia_administrativa")
private String dependenciaAdministrativa;
@Column(name = "categoria")
private String categoria;
@Column(name = "predio")
private String predio;
@Column(name = "conveniada")
private String conveniada;
@Column(name = "logradouro")
private String logradouro;
@Column(name = "numero")
private String numero;
@Column(name = "complemento")
private String complemento;
@Column(name = "bairro")
private String bairro;
@JoinColumn(name="municipio", referencedColumnName="id")
@OneToOne
private Municipio municipio;
@Column(name = "cep")
private String cep;
@Column(name = "telefone")
private String telefone;
@Column(name = "fax")
private String fax;
@Column(name = "email")
private String email;
@Column(name = "nome_diretor")
private String nomeDiretor;
@Column(name = "cpf_diretor")
private String cpfDiretor;
@Column(name = "telefone_diretor")
private String telefoneDiretor;
@Column(name = "email_diretor")
private String emailDiretor;
@Column(name = "observacao")
private String observacao;
@Column(name = "status")
private String status;
public Escola() {
}
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at br.com.jd.dao.Dao.inserir(Dao.java:22)
at br.com.jd.facade.EscolaFacade.inserir(EscolaFacade.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1529)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:907)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:147)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into sge.public.escolas (bairro, categoria, cep, cnpj, complemento, conveniada, cpf_diretor, dependencia_administrativa, email, email_diretor, fax, logradouro, municipio, nome_diretor, nome_fantasia, numero, numeroCebas, numero_cnas, numero_inep, observacao, predio, razao_social, status, telefone, telefone_diretor, id) values (, Particular, , , , NULL, , , , , , , 125, , CSTA, , , , 123, , Proprio, COLEGIO SAO TOMAS DE AQUINO, A, , , 11) foi abortada. Chame getNextException para ver a causa.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2531)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1344)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:343)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2668)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 41 more
Alguém poderia me ajudar?